<?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: Bytes]]></title><description><![CDATA[A space for thoughtful, detailed articles on development and tech. Here, you'll find guides, reviews, and opinions covering everything from coding techniques to industry insights. Whether you’re learning something new or exploring deep dives, "Bytes" offers practical and interesting reads for developers at all levels.]]></description><link>https://www.devshorts.in/s/bytes</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: Bytes</title><link>https://www.devshorts.in/s/bytes</link></image><generator>Substack</generator><lastBuildDate>Thu, 30 Apr 2026 07:44:34 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[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[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><item><title><![CDATA[Finetuning DeepSeek-V3 With Tinker API]]></title><description><![CDATA[Fine tuning DeepSeek-V3 with Tinker to write in my newsletter style]]></description><link>https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker</link><guid isPermaLink="false">https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Tue, 23 Dec 2025 10:31:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!K-yJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We all know <a href="https://thinkingmachines.ai/">Thinking Machines Lab</a> by now. When <a href="https://x.com/miramurati">Mira Murati, OpenAI&#8217;s former CTO</a>, started this company, many people were curious about what they would build first.</p><p>They started with <a href="https://thinkingmachines.ai/tinker/">Tinker</a>.</p><p>Tinker is an API for fine tuning large language models. The idea behind it is simple. You control the training logic. This includes your data, loss functions, and training loop. Tinker takes care of the hard parts like distributed GPU training, scheduling, and system reliability.</p><p>In simple terms, Tinker helps you fine tune models without worrying about infrastructure, while still giving you full control.</p><p>In this blog, I walk through:</p><ol><li><p>What is Tinker</p></li><li><p>Why Tinker</p></li><li><p>Finetuning DeepSeek V3 with Tinker</p></li><li><p>Inference and Deployment Options</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 Tinker</h2><p>Tinker is an API for fine tuning large language models.</p><p>Fine tuning means taking an existing model and training it on your own data. This is how a model learns a new style or task.</p><p>With Tinker, you still write the training logic. You decide how data is loaded, how loss is calculated, and how the training loop runs.</p><p>But you do not have to manage the infrastructure. You call the Tinker API from your local machine, and the training runs on Tinker&#8217;s GPUs.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nmj9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nmj9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 424w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 848w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 1272w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nmj9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif" width="1097" height="144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:144,&quot;width&quot;:1097,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90214,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.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_!Nmj9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 424w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 848w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 1272w, https://substackcdn.com/image/fetch/$s_!Nmj9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb604c95d-99fa-41dc-9af5-2870abbcb588_1097x144.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>The Tinker API has four functions:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8G75!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8G75!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8G75!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8G75!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8G75!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8G75!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg" width="1120" height="348" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:348,&quot;width&quot;:1120,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41116,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8G75!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8G75!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8G75!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8G75!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1db67a3-1653-478e-a405-502c442a39e1_1120x348.jpeg 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>2. Why Tinker</h2><p>Fine-tuning LLMs typically falls into two extremes.</p><h4><strong>Manual fine-tuning</strong> </h4><p>It gives you complete control. Your GPUs. Your CUDA setup. Your choice of libraries and optimizers. Every knob is yours to turn.  </p><p>But so is every failure. Every compatibility issue. Every hour spent on infrastructure instead of actual training.</p><h4><strong>Platform-based fine-tuning</strong>:</h4><p>It offers simplicity. just upload a dataset, click train, download weights. No infrastructure to manage, no code to write. </p><p>But you&#8217;re locked out of the training process entirely.</p><h4>Tinker: The Middle Ground</h4><p>Tinker fits in the right sweet spot between Manual Finetuning and Platform based Finetuning. It gives you control where it matters.</p><p>You define the datasets, loss functions, and training loops. Tinker handles the infrastructure headache like GPU setup, Distributed training, Memory management and Hardware failures. </p><p>Tinker gives you full control over fine-tuning without the infrastructure tax.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K-yJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K-yJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 424w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 848w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K-yJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg" width="1154" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:1154,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92767,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg&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_!K-yJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 424w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 848w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!K-yJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa886e8-1eb9-4046-b5e8-5d047c049f43_1154x540.jpeg 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>Both extremes come with some disadvantages, which makes Tinker Existence Valuable.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8M7K!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8M7K!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8M7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg" width="1079" height="524" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/edb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:524,&quot;width&quot;:1079,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93462,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8M7K!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8M7K!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb41f26-3f13-4506-8633-999fa4af988d_1079x524.jpeg 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. Finetuning DeepSeek V3 with Tinker API</h2><p>Now let us finetune DeepSeek Model with Tinker API.</p><p>I send out the Dev Catch Up newsletter every week. Each item follows a clear style. It is short, simple, and focused on what actually matters. I read AI updates and releases, then rewrite them in my own voice.</p><p>I wanted to see if DeepSeek could learn this style. </p><p>So, I fine-tuned the model on my newsletter data. After training, it started picking up the Dev Shorts tone. Simple and Short sentences. No unnecessary hype.</p><p>Before fine tuning, the base model behaves like most LLMs. It uses bullet points, emojis, and phrases like &#8220;game changer&#8221; or &#8220;massive upgrade&#8221;. That is not how I write.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yF7I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yF7I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 424w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 848w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 1272w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yF7I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png" width="1216" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1216,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76379,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.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_!yF7I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 424w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 848w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.png 1272w, https://substackcdn.com/image/fetch/$s_!yF7I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8e5fd41-e9f7-4fe8-99d5-c4c05f7ed840_1216x678.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>Let us now fine tune it step by step and see how the output changes.</p><h4>Step 1: Install Tinker </h4><pre><code>!pip install tinker
!pip install torch
!pip install tinker_cookbook</code></pre><h4>Step 2: Set Your API Key</h4><pre><code>import os
os.environ["TINKER_API_KEY"] = "your-api-key-here"</code></pre><h4>Step 3: Import necessary packages</h4><p>Tinker is the core training API. It runs the training on managed infrastructure.</p><blockquote><p><a href="https://github.com/thinking-machines-lab/tinker-cookbook">Tinker Cookbook</a> is an optional helper library. I am using it here for tokenization, chat formatting, and dataset conversion.</p><p> If you want, you can write tokenization and the rest from scratch without using Cookbook and work directly with the Tinker API.</p></blockquote><pre><code>import json
import time
import tinker
import torch
from tinker import types
from tinker_cookbook import renderers
from tinker_cookbook.supervised.data import conversation_to_datum
from tinker_cookbook.renderers import TrainOnWhat
from tinker_cookbook.tokenizer_utils import get_tokenizer
from tinker_cookbook import model_info
from tinker_cookbook.supervised.common import compute_mean_nll</code></pre><h4>Step 4: Connect to Tinker and see available models:</h4><pre><code>service_client = tinker.ServiceClient()
capabilities = service_client.get_server_capabilities()

print(&#8221;Available models:&#8221;)
for model in capabilities.supported_models:
    print(f&#8221;  {model.model_name}&#8221;)</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Fz_Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 424w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 848w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 1272w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png" width="826" height="579" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56157656-e69c-46cd-8af2-112eeccc4904_826x579.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:579,&quot;width&quot;:826,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52796,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.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_!Fz_Y!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 424w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 848w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.png 1272w, https://substackcdn.com/image/fetch/$s_!Fz_Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56157656-e69c-46cd-8af2-112eeccc4904_826x579.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>Step 5: Select the base model to finetune</h4><pre><code>MODEL_NAME = &#8220;deepseek-ai/DeepSeek-V3.1&#8221;</code></pre><p>This is the base model we are going to fine-tune.  The model's name must match one of the available models returned by the Tinker API.</p><h4>Step 6: Configure LORA Finetuning Parameters</h4><pre><code>BATCH_SIZE = 8
LEARNING_RATE = 2e-5
LORA_RANK = 32
MAX_LENGTH = 4096
NUM_EPOCHS = 10</code></pre><blockquote><p><code>LEARNING_RATE = 2e-5</code> is <code>0.00002</code>. - Start conservative for large models.</p><p><code>LORA_RANK = 32</code> - Controls the adapter size. Higher means more capacity but slower training.</p><p><code>NUM_EPOCHS = 10</code> - means model go through the dataset 10 times.</p></blockquote><h4>Step 7: Load Tokenizer and Renderer</h4><pre><code>tokenizer = get_tokenizer(MODEL_NAME)
renderer_name = model_info.get_recommended_renderer_name(MODEL_NAME)
renderer = renderers.get_renderer(renderer_name, tokenizer)</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kutS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kutS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 424w, https://substackcdn.com/image/fetch/$s_!kutS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 848w, https://substackcdn.com/image/fetch/$s_!kutS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 1272w, https://substackcdn.com/image/fetch/$s_!kutS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kutS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png" width="850" height="257" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:257,&quot;width&quot;:850,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26799,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.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_!kutS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 424w, https://substackcdn.com/image/fetch/$s_!kutS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 848w, https://substackcdn.com/image/fetch/$s_!kutS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.png 1272w, https://substackcdn.com/image/fetch/$s_!kutS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a63676b-e374-4c55-bac5-0d6e5708a211_850x257.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>The tokenizer converts text into tokens. The renderer defines how chat messages are formatted before they are sent to the model.</p><h4>Step 8: Prepare the Dataset for Training</h4><p>My dataset is a JSONL file. </p><p>The user message contains raw content scraped from release pages. The assistant message contains the <a href="https://www.devshorts.in/">Dev Shorts newsletter</a> style.</p><p>I prepared around 100 rows in total. Each row follows this format. For this walkthrough, I am using a small sample of 16 rows.</p><pre><code>{
  "messages": [
    {
      "role": "user",
      "content": "Rewrite in Dev Shorts newsletter style. 
We are introducing GPT&#8209;5.2, the most capable model series yet for professional knowledge work.

Already, the average ChatGPT Enterprise user says&#8288; AI saves them 40&#8211;60 minutes a day, and heavy users say it saves them more than 10 hours a week. We designed GPT&#8209;5.2 to unlock even more economic value for people; it&#8217;s better at creating spreadsheets, building presentations, writing code, perceiving images, understanding long contexts, using tools, and handling complex, multi-step projects.

GPT&#8209;5.2 sets a new state of the art across many benchmarks, including GDPval, where it outperforms industry professionals at well-specified knowledge work tasks spanning 44 occupations."
    },
    {
      "role": "assistant",
      "content": "OpenAI has launched GPT 5.2. It is better at creating spreadsheets, building presentations, writing code, understanding images. It can work with long context. It also uses tools more effectively and handles multi-step work with more accuracy. Read OpenAI&#8217;s GPT 5.2 post for more details."
    }
  ]
}
</code></pre><h4>Step 9: Load the Dataset</h4><pre><code>DATASET_PATH = "dataset.jsonl"

training_data_raw = []
with open(DATASET_PATH, "r") as f:
    for line in f:
        training_data_raw.append(json.loads(line.strip()))

print(f"Loaded {len(training_data_raw)} examples")</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rqsz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rqsz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 424w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 848w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 1272w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rqsz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png" width="718" height="271" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:718,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21022,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.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_!rqsz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 424w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 848w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.png 1272w, https://substackcdn.com/image/fetch/$s_!rqsz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9db97c3c-e402-4c4f-8b45-5b56915a236b_718x271.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>Step 10: Convert the data to training format</h4><p><code>conversation_to_datum</code> - This function converts each conversation into a format Tinker can use for training. </p><p><code>TrainOnWhat.ALL_ASSISTANT_MESSAGES</code> - It tells Tinker to only learn from assistant responses, not user messages.</p><pre><code>training_data = [
    conversation_to_datum(
        ex["messages"],
        renderer,
        MAX_LENGTH,
        TrainOnWhat.ALL_ASSISTANT_MESSAGES,
    )
    for ex in training_data_raw
]</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MMfN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MMfN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 424w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 848w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 1272w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MMfN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png" width="676" height="353" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:353,&quot;width&quot;:676,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21350,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.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_!MMfN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 424w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 848w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.png 1272w, https://substackcdn.com/image/fetch/$s_!MMfN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34ef6e06-c721-4d25-b98f-67ae0a3ab5ba_676x353.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>Step 11: Create Training Client</h4><pre><code>training_client = service_client.create_lora_training_client(
    base_model=MODEL_NAME,
    rank=LORA_RANK,
)

print("Training client created")</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!A-Xe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!A-Xe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 424w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 848w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 1272w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!A-Xe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png" width="825" height="254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/923403a5-a76a-41c0-9922-592607a8990a_825x254.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:254,&quot;width&quot;:825,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14552,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.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_!A-Xe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 424w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 848w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.png 1272w, https://substackcdn.com/image/fetch/$s_!A-Xe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F923403a5-a76a-41c0-9922-592607a8990a_825x254.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>Step 12: Train the Model</h4><p>Tinker has 4 core functions. The training loop uses two of them.</p><ul><li><p><code>forward_backward()</code> - compute gradients</p></li><li><p><code>optim_step()</code> - update weights</p></li></ul><pre><code>n_batches = len(training_data) // BATCH_SIZE

for epoch in range(NUM_EPOCHS):
    print(f"\nEpoch {epoch + 1}/{NUM_EPOCHS}")
    
    for batch_idx in range(n_batches):
        t_start = time.time()
        
        # Learning rate decay
        step = epoch * n_batches + batch_idx
        total_steps = NUM_EPOCHS * n_batches
        lr_mult = max(0.0, 1.0 - step / total_steps)
        current_lr = LEARNING_RATE * lr_mult
        
        adam_params = types.AdamParams(
            learning_rate=current_lr,
            beta1=0.9,
            beta2=0.95,
            eps=1e-8,
        )
        
        # Get batch
        batch_start = batch_idx * BATCH_SIZE
        batch_end = batch_start + BATCH_SIZE
        batch = training_data[batch_start:batch_end]
        
        # Training step
        fwd_bwd_future = training_client.forward_backward(batch, loss_fn="cross_entropy")
        optim_step_future = training_client.optim_step(adam_params)
        
        fwd_bwd_result = fwd_bwd_future.result()
        optim_step_future.result()
        
        # Compute loss
        logprobs = [out["logprobs"] for out in fwd_bwd_result.loss_fn_outputs]
        weights_list = [d.loss_fn_inputs["weights"] for d in batch]
        mean_nll = compute_mean_nll(logprobs, weights_list)
        
        elapsed = time.time() - t_start
        print(f"  Batch {batch_idx + 1}/{n_batches} | NLL: {mean_nll:.4f} | LR: {current_lr:.2e} | Time: {elapsed:.2f}s")

print("\nTraining complete")</code></pre><p>The loss (NLL) should decrease as training progresses.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MVAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MVAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 424w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 848w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 1272w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MVAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png" width="976" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:976,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69820,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.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_!MVAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 424w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 848w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.png 1272w, https://substackcdn.com/image/fetch/$s_!MVAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fa9f46-2c49-4bea-abdb-ac99b1f41b62_976x835.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>Note: The dataset size and epochs shown here are for demonstration. I actually finetuned with more rows and higher epochs to get the model to pick up the style properly.</p><h4>Step 13: Save Checkpoint</h4><p>This uses Tinker's third function.</p><p><code>save_weights_for_sampler()</code> - It stores the checkpoint on Tinker's servers.</p><pre><code>final_path = training_client.save_weights_for_sampler(name="final").result().path
print(f"Final checkpoint: {final_path}")</code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g94X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g94X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 424w, https://substackcdn.com/image/fetch/$s_!g94X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 848w, https://substackcdn.com/image/fetch/$s_!g94X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 1272w, https://substackcdn.com/image/fetch/$s_!g94X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g94X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png" width="954" height="156" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:156,&quot;width&quot;:954,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21544,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b371b2e-a4ae-4240-bfaa-eff6c0b95408_954x156.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_!g94X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 424w, https://substackcdn.com/image/fetch/$s_!g94X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 848w, https://substackcdn.com/image/fetch/$s_!g94X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 1272w, https://substackcdn.com/image/fetch/$s_!g94X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ee131fd-727b-42ac-9e17-6fdcf7944040_954x156.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Step 14: Test the Finetuned Model</h4><p>Finally, test the finetuned model using Tinker&#8217;s fourth function- <code>sample()</code>.</p><pre><code>test_client = service_client.create_sampling_client(model_path=final_path)

test_input = (
    "The Gemma is a family of generative AI models designed for tasks like question answering, summarization etc. It is a family of open models from Google. Gemma recently crossed 100 million downloads and has a growing community with tens of thousands of model variants created by developers. Google has now introduced Gemma 3, a new set of lightweight open models built on the same research used for Gemini 2.0. These models are designed to run efficiently on devices like phones, laptops, and workstations. Gemma 3 is available in multiple sizes including 1B, 4B, 12B, and 27B. Gemma 3 supports text and image reasoning, a 128k token context window, function calling, and structured outputs. It also offers support for more than 140 languages and includes official quantized versions to improve performance while reducing compute requirements."
)

STYLE_PREFIX = (
    "Rewrite in Dev Shorts newsletter style."
)

convo = [
    {
        "role": "user",
        "content": STYLE_PREFIX + "\n\n" + test_input
    }
]

model_input = renderer.build_generation_prompt(convo)

result = test_client.sample(
    prompt=model_input,
    num_samples=1,
    sampling_params=types.SamplingParams(
        max_tokens=200,
        stop=renderer.get_stop_sequences(),
        temperature=0.2,
    ),
).result()

parsed_message, _ = renderer.parse_response(result.sequences[0].tokens)
output = parsed_message["content"]

print("INPUT:")
print(test_input)
print("\nOUTPUT:")
print(output)</code></pre><p>The finetuned model writes in the style we finetuned.</p><p>Output:</p><p>Google released Gemma 3. It is a set of open models for tasks like question answering and summarization. It has a 128K token context window and supports text and image reasoning. It is designed to run on phones, laptops, and workstations. It supports over 140 languages. Check Google&#8217;s Gemma 3 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_!Z2i7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z2i7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 424w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 848w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 1272w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Z2i7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55031,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.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_!Z2i7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 424w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 848w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.png 1272w, https://substackcdn.com/image/fetch/$s_!Z2i7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd108b39f-4f90-4c06-ad0a-7838fc09f4d2_1471x646.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>Step 15: Download the finetuned model weights</h4><pre><code>import urllib.request

sc = tinker.ServiceClient()
rc = sc.create_rest_client()
future = rc.get_checkpoint_archive_url_from_tinker_path("tinker://8c8-------2d0bd:train:0/sampler_weights/final")
checkpoint_archive_url_response = future.result()
urllib.request.urlretrieve(checkpoint_archive_url_response.url, "deepseek_finetuned.tar")</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EciN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EciN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 424w, https://substackcdn.com/image/fetch/$s_!EciN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 848w, https://substackcdn.com/image/fetch/$s_!EciN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 1272w, https://substackcdn.com/image/fetch/$s_!EciN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EciN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png" width="1447" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:1447,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60187,&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/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F539f408c-45ef-4253-9070-b57064c70ce7_1447x500.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_!EciN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 424w, https://substackcdn.com/image/fetch/$s_!EciN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 848w, https://substackcdn.com/image/fetch/$s_!EciN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.png 1272w, https://substackcdn.com/image/fetch/$s_!EciN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89384ff3-e2ee-4de7-8eb0-ff241755a314_1447x500.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5JnM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5JnM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5JnM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg" width="989" height="354" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:354,&quot;width&quot;:989,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/181648138?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5JnM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5JnM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfaae484-a837-4cde-bd75-2c283317e011_989x354.jpeg 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>We tested the fine-tuned model using Tinker. Now let us see how to use the fine-tuned weights outside Tinker.</p><h2>4. Inference and deployment options</h2><p>As we can download finetuned weights - LoRA adapters, we can also use it outside the Tinker platform.</p><h4>1. Load the LoRA adapter using Hugging Face PEFT</h4><p>You can load the LoRA adapter on top of the base model using <a href="https://huggingface.co/docs/peft/index">HuggingFace PEFT.</a> and use for inference.</p><pre><code>from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

base_model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-V3.1")
tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-V3.1")
model = PeftModel.from_pretrained(base_model, "./deepseek_finetuned")

prompt = "Rewrite in Dev Shorts newsletter style.\n\nOpenAI released GPT-5..."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=200)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))</code></pre><h4>2. Run the model with vLLM for fast inference</h4><p>You can run the base model with the <a href="https://nm-vllm.readthedocs.io/en/latest/models/lora.html">LoRA adapter using vLLM</a> for fast inference.</p><pre><code>from vllm import LLM
from vllm.lora.request import LoRARequest

llm = LLM(model="deepseek-ai/DeepSeek-V3.1", enable_lora=True)

output = llm.generate(
    "Rewrite in Dev Shorts newsletter style.\n\nOpenAI released GPT-5...",
    lora_request=LoRARequest("devshorts", 1, "./deepseek_finetuned")
)
print(output[0].outputs[0].text)</code></pre><h4>Note on hardware requirements</h4><p>Running large models using Hugging Face or vLLM requires significant GPU memory. Make sure your hardware can handle the base model size.</p><p>If you do not want to manage infrastructure, you can also host the model on third party platforms that support LoRA adapters.</p><h2>Conclusion</h2><p>Tinker does one thing well. It lets you focus on training behavior instead of infrastructure.</p><p>If your goal is to fine tune models, <a href="https://thinkingmachines.ai/tinker/">Tinker</a> is worth trying. You stay close to the training loop. You can see how the model changes at each step. And you can still take the weights and run them anywhere you want.</p><p>I hope this blog gave you a clear idea of what Tinker is and how it works.</p><p>See you in the next Bytes blog,</p><p>Until then, happy learning and happy holidays!!!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker?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/finetuning-deepseek-v3-with-tinker?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/finetuning-deepseek-v3-with-tinker?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Cursor + Opus 4.5 - The Developer Workflow]]></title><description><![CDATA[A walkthrough of how I use Cursor with Opus 4.5]]></description><link>https://www.devshorts.in/p/cursor-opus-45-the-developer-workflow</link><guid isPermaLink="false">https://www.devshorts.in/p/cursor-opus-45-the-developer-workflow</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 10 Dec 2025 15:45:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KuBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Anthropic released <a href="https://www.anthropic.com/news/claude-opus-4-5">Claude Opus 4.5</a> recently. It is their strongest model so far.</p><p>I have been using it inside Cursor for a few weeks. Opus 4.5 handled the coding work with ease. Cursor managed the agents and kept them running side by side. Together they cut my build time almost in half.</p><p>My iteration cycle changed as well. Most tasks worked on the first try. When something failed, the fix was fast. Less back and forth. More time to build.</p><p>This guide captures my workflow with Cursor and Opus 4.5 while building a real time application.</p><p>What we will cover</p><ol><li><p>Claude Opus 4.5 features</p></li><li><p>Cursor&#8217;s latest features</p></li><li><p>A developer workflow with Cursor and Opus 4.5</p></li><li><p>What I noticed in the code while using Opus 4.5</p></li><li><p>Cursor with other models</p></li></ol><p>Let us start.</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. Claude Opus 4.5 </h2><p>Here is a quick view of what Opus 4.5 offers. I grouped the model spec and the capabilities so you can see both sides at once.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!szY5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!szY5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 424w, https://substackcdn.com/image/fetch/$s_!szY5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 848w, https://substackcdn.com/image/fetch/$s_!szY5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 1272w, https://substackcdn.com/image/fetch/$s_!szY5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!szY5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png" width="1456" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:110303,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.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_!szY5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 424w, https://substackcdn.com/image/fetch/$s_!szY5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 848w, https://substackcdn.com/image/fetch/$s_!szY5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.png 1272w, https://substackcdn.com/image/fetch/$s_!szY5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3096103-5624-437c-a4d8-224dbf23af0f_1693x714.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>Opus comes with its own strengths, but it is not the best choice for every task. Other models perform better in some areas. </p><p>When it comes to multilingual tasks, Gemini performs better than Opus. For visual tasks, GPT takes the lead.</p></blockquote><h2>2. Cursor Features</h2><p>Here are the Cursor features that helped the most during the build. I grouped them so you can see how all in one place. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hlEL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hlEL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 424w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 848w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 1272w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hlEL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png" width="1456" height="357" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:357,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:255370,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.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_!hlEL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 424w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 848w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 1272w, https://substackcdn.com/image/fetch/$s_!hlEL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3db042-4dbc-4081-b231-fb34cf153387_3886x953.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Both tools bring their own strengths. When used together, the workflow becomes faster and easier. </p><p>Here is the cursor + opus 4.5 workflow for building an application.</p><h2>3. Cursor + Opus 4.5: The new developer workflow</h2><p>The application I built is a small <strong>API monitoring tool</strong>. </p><p>What it does :- Captures all API calls from my local apps and shows them in a clean UI.</p><p>Why I built it :-  DevTools works, but shows everything like network requests, console logs, DOM changes. Too much noise when I just want to see API calls.</p><p>How it helps :- Clean view of only API requests and responses. No clutter. Makes debugging faster.</p><p>I will start by pre-cursor setup.</p><h4>Step 1: Pre-Cursor Setup</h4><pre><code>mkdir api-monitor-demo
cd api-monitor-demo
git init
cursor .</code></pre><h4>Step 2: Set Up Rules Before Writing Code</h4><p>Cursor supports <a href="https://cursor.com/docs/context/rules">rules</a>. These rules act like project standards. Once you set them, Cursor follows them whenever needed.</p><p>There is a <a href="https://github.com/PatrickJS/awesome-cursorrules">Cursor rules repo on GitHub</a> with examples for many languages.</p><p>I copy the rules and send them to an agent. I ask the agent to create the rule files. I keep sending prompts for creating rules for both frontend and backend. <a href="https://cursor.com/docs/agent/planning#queued-messages">Cursor queues the messages</a><strong><a href="https://cursor.com/docs/agent/planning#queued-messages"> </a></strong>and completes each task one by one while I plan the rest of the work.</p><p><strong>Create Rules Folders and Files</strong></p><p>Prompt to the Agent:</p><ul><li><p>Create .cursor/rules/ folder </p></li><li><p>Create core.mdc  inside <code>.cursor/rules</code> with below content.</p></li><li><p>Create backend.mdc inside <code>.cursor/rules</code> with below content.</p></li><li><p>Create frontend.mdc inside <code>.cursor/rules</code> with below content.</p></li></ul><p>Sample content for core.mdc</p><pre><code>
---
description: Core project standards
globs:
alwaysApply: true
---

# Standards

- TypeScript strict mode
- Never use `any` &#8212; use `unknown` and narrow
- Never write `// ... rest of code` placeholders
- Always provide complete implementations
- Use Zod for runtime validation
- Log errors with context: `console.error(&#8217;[Component]&#8217;, error)`</code></pre><blockquote><p>Start with a few rules. Add more only when you see repeated mistakes. Keep the tab open and update it as you build.</p></blockquote><h4><strong>Step 3: Plan with Opus 4.5 (Use Commands for Planning)</strong></h4><p>Cursor has an Ask Mode for read only conversations. It answers questions but does not touch the code.</p><p>I used Ask Mode at first, but I often forgot to switch back to Agent Mode when I wanted to make code changes. Then I had to repeat the prompt in Agent Mode. </p><p>To avoid this, I use a small planning command. I run this command in Agent Mode, but it does not make any code changes.</p><p>Create a file at <code>.cursor/commands/planonly.mdc</code> with this content:</p><pre><code>#planonly.mdc

Do not update any code. Instead:
- Explain the approach
- List options with pros and cons
- Highlight potential challenges
- Ask clarifying questions if the request is unclear
- Respond based on prompt</code></pre><p>This works like a clean planning mode inside Agent Mode. I use it when I want Cursor to think through the problem without touching the repo.</p><p><a href="https://cursor.com/docs/agent/chat/commands#examples">Cursor gives a few example commands on its page</a>. You can create your own commands based on your workflow. </p><p>I keep a small set of commands that I use often. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CckW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CckW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 424w, https://substackcdn.com/image/fetch/$s_!CckW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 848w, https://substackcdn.com/image/fetch/$s_!CckW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 1272w, https://substackcdn.com/image/fetch/$s_!CckW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CckW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png" width="331" height="306" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:306,&quot;width&quot;:331,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17289,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.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_!CckW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 424w, https://substackcdn.com/image/fetch/$s_!CckW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 848w, https://substackcdn.com/image/fetch/$s_!CckW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.png 1272w, https://substackcdn.com/image/fetch/$s_!CckW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a84752-760f-433d-8b04-e1d0bb318d55_331x306.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>For any new project,</p><blockquote><p>I think through the design with Opus first. Once the design is clear, I ask it for the detailed prompts to build the frontend and backend. </p><p><strong>Opus works like a prompt builder in this stage</strong>. </p><p>Since it knows the full context, it gives detailed prompts for each part. I paste them into different agents, and they start to build in parallel.</p></blockquote><h4><strong>Step 4: Building the app with cursor parallel agents</strong></h4><p>Once I had the prompts from Opus, I sent them to separate agents. </p><p>This is where Cursor and Opus change the way we build. Instead of working on one part at a time, you can run many<a href="https://cursor.com/docs/configuration/worktrees"> agents in parallel</a>. Each agent focuses on a single part of the project.</p><p>For this app, I used three agents: frontend, backend, and infra.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vsUT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vsUT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 424w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 848w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vsUT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif" width="864" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:864,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165501,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.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_!vsUT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 424w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 848w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!vsUT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933799af-287d-4c35-ad81-1d9e898ad3d8_864x280.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><p><strong>Backend Agent: </strong></p><pre><code>Prompt:- Build the backend proxy server in src/server/ with these requirements:

[backend requirements here]</code></pre><p><strong>Frontend Agent </strong></p><pre><code>Prompt:- Build the React UI in src/ui/ with these requirements:

[frontend requirements here]</code></pre><p><strong>Infrastructure Agent</strong></p><pre><code>Prompt:- Set up project infrastructure

[infra requirements here]</code></pre><p>All three agents run at the same time. This is the folder structure I got for the API monitoring app.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OXYM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OXYM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 424w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 848w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 1272w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OXYM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png" width="321" height="253" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:253,&quot;width&quot;:321,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10858,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.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_!OXYM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 424w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 848w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.png 1272w, https://substackcdn.com/image/fetch/$s_!OXYM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff3d2fdf7-e13b-4383-88af-8a44b7f32b73_321x253.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>Watch three agents build the API Monitoring app in parallel. Backend, frontend, and infrastructure - all at the same time</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;98bc981a-648f-43bd-83ee-bc07f07bd250&quot;,&quot;duration&quot;:null}"></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sIdV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sIdV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 424w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 848w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 1272w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sIdV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png" width="1456" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121747,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.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_!sIdV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 424w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 848w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.png 1272w, https://substackcdn.com/image/fetch/$s_!sIdV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f38c030-2009-4b4d-96aa-3302388bdcf7_1915x972.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>The API monitoring tool was a small project built locally from scratch, so running all agents in the same folder worked fine. </p><p>But in bigger projects and git repos, the number of files and changes grows, and conflicts become more likely. This is where git worktrees help.</p><h4>Working with existing GitHub repo</h4><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Git worktrees let you work on multiple branches</a> at the same time. Each agent gets its own workspace. No overlap. No risk of one agent overwriting the work of another. Also, multiple feature development can be done at the same time.</p><p>In that case, I start by creating feature branches with git worktrees. </p><pre><code><code>git worktree add ../ui -b feature/ui
git worktree add ../api -b feature/api</code></code></pre><p>I open each worktree in its own editor window. Then I ask Opus to read the code and understand the repo.  Then each agent starts to work in its own folder.</p><p>When the work is done, I merge the feature branch back into main. Cursor shows the diffs clearly, and the review tools help catch mistakes before the merge.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cw96!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cw96!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 424w, https://substackcdn.com/image/fetch/$s_!cw96!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 848w, https://substackcdn.com/image/fetch/$s_!cw96!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 1272w, https://substackcdn.com/image/fetch/$s_!cw96!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cw96!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif" width="1082" height="603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:603,&quot;width&quot;:1082,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:348056,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.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_!cw96!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 424w, https://substackcdn.com/image/fetch/$s_!cw96!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 848w, https://substackcdn.com/image/fetch/$s_!cw96!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.gif 1272w, https://substackcdn.com/image/fetch/$s_!cw96!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1369413-337a-4555-9d9e-a803de1bb257_1082x603.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>Code review</h4><p>Cursor has a built-in review flow. It helps you check the changes made by the agents. It shows a simple diff, and you can choose which changes to accept.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Oq8w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Oq8w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 424w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 848w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 1272w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Oq8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png" width="1641" height="198" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:198,&quot;width&quot;:1641,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42053,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5f7e450f-00de-4147-9c71-b7749e2200c0_1641x198.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_!Oq8w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 424w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 848w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 1272w, https://substackcdn.com/image/fetch/$s_!Oq8w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbec7677d-7c4d-44c4-80ac-2d2b1f40d41c_1641x198.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Cursor can review after each commit, include untracked files, or include submodules.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DGDS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DGDS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 424w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 848w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 1272w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DGDS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png" width="626" height="268" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:268,&quot;width&quot;:626,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23614,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.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_!DGDS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 424w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 848w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.png 1272w, https://substackcdn.com/image/fetch/$s_!DGDS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cbc4632-8b6a-4f04-b41a-f93a73d328a8_626x268.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_!cVIy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cVIy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 424w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 848w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 1272w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cVIy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png" width="463" height="153" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/032d4280-3923-4fbd-a09f-549953c49161_463x153.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:153,&quot;width&quot;:463,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7550,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.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_!cVIy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 424w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 848w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 1272w, https://substackcdn.com/image/fetch/$s_!cVIy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F032d4280-3923-4fbd-a09f-549953c49161_463x153.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can also create a command for code review and use it in chat. </p><p>You can also use tools like <a href="https://www.coderabbit.ai/">Coderabbit AI</a> to review your code inside IDE.</p><h2>4. What I noticed in the code while using Opus 4.5</h2><p>Here are some things I noticed in the code while using Opus 4.5.</p><ol><li><p>Handled complex logic without breaking the flow</p></li><li><p>Delivered clean code in a single prompt in many cases</p></li><li><p>Kept the structure stable across long tasks</p></li><li><p>Produced modular and efficient code by default</p></li><li><p>Wrote clear and consistent UI components</p></li><li><p>Created well-structured API endpoints</p></li><li><p>Used predictable naming and patterns across files</p></li><li><p>Generated self-explanatory code that needed fewer comments</p></li></ol><h2>5. Cursor with other models</h2><p>After working with cursor for many months, I switch between models based on the kind of work I am doing. Each one has a strength.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KuBW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KuBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 424w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 848w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 1272w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KuBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png" width="1034" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:528,&quot;width&quot;:1034,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123862,&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/180578013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.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_!KuBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 424w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 848w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.png 1272w, https://substackcdn.com/image/fetch/$s_!KuBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ac32a8c-52c1-4c2a-977b-8b39ffc24ca6_1034x528.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 looked how Cursor agents with Opus 4.5 help speed up development. If you are using Cursor, try with agents - Opus 4.5 and git worktrees. It keeps the work organized and makes it easy to build features in parallel.</p><p>This setup is not about changing everything you do. It just gives you a smoother way to move through your work. </p><p>Next time you start a project, try this: Open parallel agents. Give each one a clear task. Let them run while you plan what&#8217;s next. You&#8217;ll finish faster than you expect</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/cursor-opus-45-the-developer-workflow?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/cursor-opus-45-the-developer-workflow?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/cursor-opus-45-the-developer-workflow?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Coding with Parallel Agents and Git worktrees]]></title><description><![CDATA[Parallel Agents with Git worktrees]]></description><link>https://www.devshorts.in/p/coding-with-parallel-agents-and-git</link><guid isPermaLink="false">https://www.devshorts.in/p/coding-with-parallel-agents-and-git</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 26 Nov 2025 15:50:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4WCA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Most of us use AI agents every day. Many times, we do not even notice it. Agents are now common in coding, and they help us with many tasks. </p><p>We are now moving to the next stage of agent-based coding. We can use parallel agents to work on many features and fixes at the same time inside the same repo.</p><p>Claude Code and Cursor support parallel agents. They use Git work trees to give each agent its own space to work. You can follow the same approach by creating work trees in your project.</p><p>Let us first understand what Git worktrees are and how they help with parallel coding.</p><ol><li><p>What is a Git worktree</p></li><li><p>Git worktree Vs Git Clone</p></li><li><p>Git worktree Commands</p></li><li><p>Claude Code&#8217;s Parallel Agents with Git worktrees</p></li><li><p>Cursor&#8217;s Parallel Agents with Git worktrees</p></li><li><p>CodeRabbit&#8217;s  Git worktree runner</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 a Git worktree</h2><p><a href="https://git-scm.com/docs/git-worktree">Git worktree</a> is a feature in Git.  Before we see Git worktree, let us see the normal Git flow.</p><h4><strong>The normal Git flow</strong></h4><ul><li><p>You have one working folder.</p></li><li><p>You have one active branch.</p></li><li><p>Switching branches changes all files in that folder</p></li></ul><pre><code>my-app/
&#9500;&#9472;&#9472; src/
&#9500;&#9472;&#9472; README.md
&#9492;&#9472;&#9472; .git/</code></pre><p>When you run <code>git checkout &#8220;feature-abc&#8221;, </code>the whole folder switches to that branch.</p><h4><strong>The Git work tree flow</strong></h4><ul><li><p>Work trees let you have many working folders from the same repo.</p></li><li><p>Each folder can have its own branch.</p></li><li><p>You can work in all of them at the same time without switching anything.</p></li></ul><blockquote><p>In simple words, you can work in parallel without switching branches.</p></blockquote><pre><code>my-app/                    
&#9500;&#9472;&#9472; src/
&#9500;&#9472;&#9472; README.md
&#9492;&#9472;&#9472; .git/

my-app-feature-a/          &#8592; Worktree 1 (feature-a branch)
&#9500;&#9472;&#9472; src/
&#9500;&#9472;&#9472; README.md
&#9492;&#9472;&#9472; .git                   &#8592; File points to main repo

my-app-feature-b/          &#8592; Worktree 2 (feature-b branch)
&#9500;&#9472;&#9472; src/
&#9500;&#9472;&#9472; README.md
&#9492;&#9472;&#9472; .git                   &#8592; File points to main repo</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4WCA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4WCA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 424w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 848w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 1272w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4WCA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif" width="912" height="416" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:416,&quot;width&quot;:912,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:196226,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.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_!4WCA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 424w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 848w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.gif 1272w, https://substackcdn.com/image/fetch/$s_!4WCA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7516bd6-3f3e-4af1-b58c-2660da84c2c8_912x416.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><h2>2. Git worktree Vs Git Clone</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BZmn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BZmn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 424w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 848w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 1272w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BZmn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png" width="1035" height="415" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:415,&quot;width&quot;:1035,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83444,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.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_!BZmn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 424w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 848w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.png 1272w, https://substackcdn.com/image/fetch/$s_!BZmn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e72a510-629d-419a-80ef-3edc24a291f7_1035x415.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>The points above explain the concept. But the commands make it crystal clear.</p><p>This is what we do in a normal clone and what we do when we use work trees.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UA9Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UA9Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 424w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 848w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 1272w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UA9Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png" width="1100" height="560" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:1100,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121309,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.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_!UA9Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 424w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 848w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.png 1272w, https://substackcdn.com/image/fetch/$s_!UA9Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf1a5aa9-0fa5-48f8-8662-6c665a5dac48_1100x560.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. Git Worktree Commands</h2><p>There are a few basic Git work tree commands you will use often.</p><h4>1. Create worktree </h4><pre><code># Create a work tree and a new branch
git worktree add &lt;worktree-path&gt; -b &lt;new-branch-name&gt;

# Example
git worktree add ../add-header -b feature/add-header


# Create a work tree from an existing branch
git worktree add &lt;worktree-path&gt; &lt;branch-name&gt;

# Example
git worktree add ../ui-changes feature/ui-changes</code></pre><h4>2. List worktree </h4><pre><code># list all active work trees
git worktree list</code></pre><h4>3. Remove worktree </h4><pre><code># remove a work tree
git worktree remove &lt;worktree-path&gt;

# Example
git worktree remove ../add-header</code></pre><h4><strong>One branch per Worktree Rule</strong></h4><p>Git has a simple rule for work trees. One branch can live in only one work tree at a time.  </p><p>If the branch is already used in a work tree, Git will block you from using it again. See the screenshot below.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aFfr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aFfr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 424w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 848w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 1272w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aFfr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png" width="1112" height="164" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:164,&quot;width&quot;:1112,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49786,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65e72a2b-2ca5-4ba2-9a4b-6f1c212bd0ed_1112x164.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_!aFfr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 424w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 848w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 1272w, https://substackcdn.com/image/fetch/$s_!aFfr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bf0228-7a07-4daa-9008-cfd8c5623f9f_1112x164.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>4. Claude Code with Git worktrees</h2><p><a href="https://code.claude.com/docs/en/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees">Claude Code can run parallel agents when you use Git work trees</a>. Each work tree has its own folder and its own branch, so Claude can work on many tasks at the same time.</p><p>I was building a Gmail mail hub for my personal use. I had ui changes and oauth work going on at the same time. </p><p>Here is how I used Claude Code with work trees to build two features at the same time.</p><h4>1. Created a new worktree for ui changes</h4><pre><code>git worktree add ../ui-changes -b feature/ui-changes</code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pJmO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pJmO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 424w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 848w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 1272w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pJmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png" width="942" height="85" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d83b907-68bd-41a8-924f-91be186e74de_942x85.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:85,&quot;width&quot;:942,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18102,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37ab69de-6ba7-4b4a-a219-2cfb87852796_942x85.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_!pJmO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 424w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 848w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 1272w, https://substackcdn.com/image/fetch/$s_!pJmO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d83b907-68bd-41a8-924f-91be186e74de_942x85.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>2. Created another worktree for oauth integration</h4><pre><code><code>git worktree add ../oauth-integration -b feature/oauth-integration</code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UGmC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UGmC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 424w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 848w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 1272w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UGmC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png" width="1068" height="84" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:84,&quot;width&quot;:1068,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18398,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe855b558-988d-42b9-bbe8-6f09486f960b_1068x84.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_!UGmC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 424w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 848w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 1272w, https://substackcdn.com/image/fetch/$s_!UGmC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ccce20a-519c-45a4-8fd9-35eb92a2941a_1068x84.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>After creating them, I listed the work trees to make sure everything was set:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gd3U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gd3U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 424w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 848w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 1272w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gd3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png" width="931" height="113" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:113,&quot;width&quot;:931,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18969,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06136418-3807-49c2-8ef5-7743576cb58a_931x113.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_!Gd3U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 424w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 848w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 1272w, https://substackcdn.com/image/fetch/$s_!Gd3U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c2fae53-4083-4d20-9630-20dd9339c69a_931x113.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can also see the separate folders for each branch. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nYqB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nYqB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 424w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 848w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 1272w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nYqB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png" width="941" height="265" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:265,&quot;width&quot;:941,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23591,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.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_!nYqB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 424w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 848w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.png 1272w, https://substackcdn.com/image/fetch/$s_!nYqB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2aaf253e-2ff6-473a-a64d-7ae213a4121b_941x265.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>Now Claude Code can work across these branches without switching, as we have separate folders.</p><p>I worked on ui changes and oauth integration at the same time using Claude Code.</p><p>The video below shows how it works in real time.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;c79ee830-29a7-45a3-aadb-4b1777cd1890&quot;,&quot;duration&quot;:null}"></div><h2>5. Cursor&#8217;s Parallel Agents with Git Worktrees</h2><p>Cursor makes it easy to run <a href="https://cursor.com/docs/configuration/worktrees">parallel agents by using Git work trees</a> in the background. </p><p>You can start by selecting a work tree and choosing many models for the same task, as shown in the image. Cursor will run the same prompt across all the selected models at once.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IgFr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IgFr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 424w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 848w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 1272w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IgFr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png" width="647" height="234" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:234,&quot;width&quot;:647,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19460,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d81bc3-bb4a-459c-9048-a05047865f3d_647x234.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_!IgFr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 424w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 848w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 1272w, https://substackcdn.com/image/fetch/$s_!IgFr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc483b99b-bcde-41e1-840e-2d6cf83941ca_647x234.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>After you submit the prompt, Cursor shows one card for each model. You can click through the cards and see how each model changed the code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kZrh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kZrh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 424w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 848w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 1272w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kZrh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png" width="1140" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:1140,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43149,&quot;alt&quot;:&quot;Best-of-N cards&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Best-of-N cards" title="Best-of-N cards" srcset="https://substackcdn.com/image/fetch/$s_!kZrh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 424w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 848w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.png 1272w, https://substackcdn.com/image/fetch/$s_!kZrh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7cf34421-c15c-41ac-ad62-c8dc1dcbdf9a_1140x344.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><figcaption class="image-caption">source:- <a href="https://cursor.com/docs/configuration/worktrees">cursor&#8217;s multiple models</a></figcaption></figure></div><p>When you like one of the versions, you can click <a href="https://cursor.com/docs/configuration/worktrees#apply-functionality">Apply</a>. Cursor will bring those edits into your checked out branch.</p><p>You can also customize worktrees by editing  .cursor/worktrees.json file.</p><p>All commands you add under setup-worktree will run inside the work tree during setup.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!swVh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!swVh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 424w, https://substackcdn.com/image/fetch/$s_!swVh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 848w, https://substackcdn.com/image/fetch/$s_!swVh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 1272w, https://substackcdn.com/image/fetch/$s_!swVh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!swVh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png" width="675" height="234" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:234,&quot;width&quot;:675,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:10582,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.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_!swVh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 424w, https://substackcdn.com/image/fetch/$s_!swVh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 848w, https://substackcdn.com/image/fetch/$s_!swVh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 1272w, https://substackcdn.com/image/fetch/$s_!swVh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc967172b-b3cd-4e95-87b5-5c439dd8023f_675x234.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can see all active worktrees anytime by running git worktree list. If you want to see Cursor created worktrees in your SCM panel, you can enable the git.showCursorWorktrees setting.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!futx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!futx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 424w, https://substackcdn.com/image/fetch/$s_!futx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 848w, https://substackcdn.com/image/fetch/$s_!futx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 1272w, https://substackcdn.com/image/fetch/$s_!futx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!futx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png" width="944" height="380" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:380,&quot;width&quot;:944,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60400,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.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_!futx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 424w, https://substackcdn.com/image/fetch/$s_!futx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 848w, https://substackcdn.com/image/fetch/$s_!futx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.png 1272w, https://substackcdn.com/image/fetch/$s_!futx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa82e3ce0-3749-4b10-984e-3d1cb9c0e7da_944x380.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>6. Git Worktree Runner - gtr</h2><p>If you want a simpler way to handle worktrees, CodeRabbit offers a helper tool called Git Worktree Runner. It makes it easy to create, open, and manage worktrees with short commands. If you use worktrees often, this tool saves a lot of typing.</p><p>You can find it here: <a href="https://github.com/coderabbitai/git-worktree-runner">CodeRabbit&#8217;s Git Worktree Runner</a></p><p>Here is how you can install and use it.</p><pre><code># Installation

git clone https://github.com/coderabbitai/git-worktree-runner.git
cd git-worktree-runner
sudo ln -s &#8220;$(pwd)/bin/git-gtr&#8221; /usr/local/bin/git-gtr

# Usage

cd ~/your-repo                              # Navigate to git repo
git gtr config set gtr.editor.default cursor    # One-time setup
git gtr config set gtr.ai.default claude        # One-time setup

# Daily workflow
git gtr new my-feature                          # Create worktree
git gtr editor my-feature                       # Open in editor
git gtr ai my-feature                           # Start AI tool
git gtr rm my-feature                           # Remove when done</code></pre><p>This table gives a quick comparison of Git worktree commands and the matching gtr commands.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fVLZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fVLZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 424w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 848w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 1272w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fVLZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png" width="1248" height="614" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:614,&quot;width&quot;:1248,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90822,&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/179121983?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.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_!fVLZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 424w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 848w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.png 1272w, https://substackcdn.com/image/fetch/$s_!fVLZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d73f1cd-4356-4352-92d2-7b0fa6d313d9_1248x614.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><figcaption class="image-caption">Source:- <a href="https://github.com/coderabbitai/git-worktree-runner">CodeRabbit&#8217;s git-worktree-runner</a></figcaption></figure></div><h2><strong>Conclusion</strong></h2><p>We looked at Git worktrees and how they help with parallel agentic coding.</p><p>Worktrees let you build many features at the same time without switching branches or creating extra clones.</p><p>Tools like Claude Code, Cursor make it even better by linking every agent to its own work tree. This keeps your work clean, safe, and fast.</p><p>Once you start using work trees, it is hard to go back to the old single folder flow. You get more focus, more speed, and fewer mistakes with this new workflow. Try creating a few work trees for your next project and see how simple it feels to work on many features at the same time.</p><p>If you use any agent-based coding tool, work trees will become a natural part of your daily workflow.</p><p>Try now and let me know how it helps in your workflow!</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/coding-with-parallel-agents-and-git?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/coding-with-parallel-agents-and-git?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/coding-with-parallel-agents-and-git?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[How to build Voice Agents]]></title><description><![CDATA[Building Voice Agents using different frameworks]]></description><link>https://www.devshorts.in/p/how-to-build-voice-agents</link><guid isPermaLink="false">https://www.devshorts.in/p/how-to-build-voice-agents</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 12 Nov 2025 15:55:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gmzd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We have been talking about AI agents for a while. This week&#8217;s blog is again about agents. But this time, it&#8217;s about voice agents. The recent announcement of <a href="https://x.com/krandiash/status/1983202316397453676">&#8220;Sonic 3 - the state of the art model in conversation&#8221;</a> made me curious to explore voice agents. Let us see how far we have come in this space.</p><p>During the LLM wave, we saw models that could convert text to speech. Now, in the agent era, voice agents are taking the spotlight. Out of every ten calls I get, at least one is from an automated voice agent promoting something. The conversational AI space is growing fast.</p><p>So, let&#8217;s explore how to build our own voice agent.</p><p>In this blog, we will cover,</p><ol><li><p>Getting Started with Voice Agents</p></li><li><p>Frameworks for Voice Agents</p></li><li><p>Building voice agents with code -OpenAI&#8217;s Agent SDK</p></li><li><p>Building voice agents without code - Voice Flow, Retell AI, Vapi</p></li><li><p>Further Reading: TTS, STT, and Speech-to-Speech Models and APIs</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. Getting Started with Voice Agents</h2><p>We have come a long way from simple text-to-speech models. Voice agents today can talk, reason, and respond in real time. It&#8217;s a big step forward in conversational AI.</p><p>A voice agent is a virtual assistant that holds natural conversations. It works over phone calls or websites. The agent listens to speech, processes it using language models, takes action, and responds in a human-like voice.</p><p>These agents can handle real tasks. They schedule appointments, answer customer questions, and make sales calls. They can call APIs, maintain context across conversations, and connect with other systems to get things done.</p><p>You can build voice agents in two ways.</p><h4>Pipeline Method</h4><p>The first way is a kind of pipeline approach using separate models:</p><ul><li><p>Speech-to-text (STT)</p></li><li><p>A language model for reasoning and tool calls, </p></li><li><p>Text-to-speech. (TTS)</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_!XxWW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XxWW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 424w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 848w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 1272w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XxWW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png" width="1456" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71645,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.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_!XxWW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 424w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 848w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.png 1272w, https://substackcdn.com/image/fetch/$s_!XxWW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd9967572-5ee4-4ef7-851e-e6a6bbc03074_1472x396.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>Example speech-to-text models:   <a href="https://github.com/openai/whisper">Whisper</a>, <a href="https://deepgram.com/learn/introducing-nova-3-speech-to-text-api">Deepgram</a>, <a href="https://www.assemblyai.com/products/speech-to-text">AssemblyAI</a> </p><p>Example text-to-speech models: <a href="https://platform.openai.com/docs/models/gpt-4o-mini-tts">gpt-4o-mini-tts</a>, <a href="https://cloud.google.com/text-to-speech">Google TTS</a>, <a href="https://elevenlabs.io/text-to-speech">ElevenLabs</a>, <a href="https://docs.cartesia.ai/build-with-cartesia/tts-models/latest">Sonic 3</a></p><h4>Speech to Speech Method</h4><p>The second approach uses a single speech-to-speech model. This removes the hand-off delays between STT and TTS models, making conversations smoother. This is faster and feels more natural.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CRb8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CRb8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 424w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 848w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 1272w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CRb8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png" width="856" height="395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:395,&quot;width&quot;:856,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49665,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.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_!CRb8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 424w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 848w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.png 1272w, https://substackcdn.com/image/fetch/$s_!CRb8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8fe0abc6-b739-4380-8533-be084a5e3687_856x395.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>Example speech-to-speech models: <a href="https://platform.openai.com/docs/models/gpt-realtime">GPT Realtime Models</a>, <a href="https://deepmind.google/en/models/gemini/flash/">Gemini Models</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_!Kp23!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kp23!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 424w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 848w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 1272w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kp23!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png" width="1059" height="395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:395,&quot;width&quot;:1059,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86090,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.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_!Kp23!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 424w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 848w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.png 1272w, https://substackcdn.com/image/fetch/$s_!Kp23!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd534b3-a41e-4f59-a1e7-ca4f8a626d35_1059x395.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><figcaption class="image-caption">Source: <a href="https://github.com/pipecat-ai/pipecat?tab=readme-ov-file#-available-services">Popular Models used in Voice Agents</a></figcaption></figure></div><p>Now that you understand how voice agents work, here&#8217;s how to choose the right approach for your project.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V7N1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V7N1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 424w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 848w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 1272w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V7N1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif" width="1104" height="265" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:265,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:150925,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.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_!V7N1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 424w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 848w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 1272w, https://substackcdn.com/image/fetch/$s_!V7N1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4185c433-f1bd-4dbf-a0ea-8bdf0af36a98_1104x265.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>2. Frameworks for Voice Agents</h2><p>As voice agents become more common, new frameworks are coming up to build and launch them faster.</p><p>Like other AI agents, voice agents also have two types of frameworks - code and no code.</p><p>Code frameworks give developers full control. They let you handle speech, logic, and real-time audio in your own way.</p><p>No code frameworks help teams move faster. You can design, test, and launch voice agents with visual tools.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qGgF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qGgF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 424w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 848w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 1272w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qGgF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png" width="883" height="433" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/07829268-d873-439a-9353-57618f1060ba_883x433.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:433,&quot;width&quot;:883,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66842,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.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_!qGgF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 424w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 848w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.png 1272w, https://substackcdn.com/image/fetch/$s_!qGgF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F07829268-d873-439a-9353-57618f1060ba_883x433.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. Building Voice Agents with code - OpenAI&#8217;s Agent SDK</h2><p>Let us first build a simple voice agent using OpenAI Agent SDK.</p><blockquote><p>This voice agent can search for files on your laptop. You can ask it to find files by name in specific folders like Downloads, Documents, or Desktop. Just speak naturally, and it will search and tell you what it found.</p></blockquote><h4>How it works</h4><p>This voice agent follows a five-step process from input to output.</p><ol><li><p>Sound Device - This Python library captures audio from your microphone.</p></li><li><p>Voice Pipeline - It converts your speech into text using a speech-to-text model.</p></li><li><p>Agent SDK - The agent reads the text, executes the logic, and generates a response.</p></li><li><p>Voice Pipeline - It converts the agent&#8217;s text response back into natural voice audio.</p></li><li><p>Sound Device - The library plays the voice response through your speakers.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gmzd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gmzd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 424w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 848w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 1272w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gmzd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png" width="1154" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/adef3696-6804-436d-ad43-3e9939617256_1154x398.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:1154,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107340,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.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_!gmzd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 424w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 848w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.png 1272w, https://substackcdn.com/image/fetch/$s_!gmzd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadef3696-6804-436d-ad43-3e9939617256_1154x398.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>The entire flow happens in real time. You speak, the agent processes, and responds with voice.</p><p>Here is the code</p><h4>1. Install required packages </h4><pre><code>pip install openai-agents[voice] sounddevice scipy </code></pre><h4>2. Setting Up the File Search Tool</h4><pre><code>import asyncio
import os
import sounddevice as sd
from scipy.io import wavfile
from agents import Agent, function_tool
from agents.voice import AudioInput, SingleAgentVoiceWorkflow, VoicePipeline

@function_tool
def search_files(pattern: str, directory: str = &#8220;home&#8221;) -&gt; str:
    &#8220;&#8221;&#8220;Search for files matching a pattern in common directories.&#8221;&#8220;&#8221;
    import glob
    
    BASE_DIR = r&#8221;C:\Users\YourUsername&#8221;  # Change this
    
    # Map common folder names
    folder_map = {
        &#8220;downloads&#8221;: &#8220;Downloads&#8221;, &#8220;documents&#8221;: &#8220;Documents&#8221;,
        &#8220;desktop&#8221;: &#8220;Desktop&#8221;, &#8220;pictures&#8221;: &#8220;Pictures&#8221;, &#8220;home&#8221;: &#8220;&#8221;
    }
    
    # Determine search directory
    dir_lower = directory.lower().strip()
    if dir_lower in folder_map:
        folder_name = folder_map[dir_lower]
        search_dir = os.path.join(BASE_DIR, folder_name) if folder_name else BASE_DIR
    else:
        search_dir = directory
    
    # Search for files
    files = glob.glob(f&#8221;{search_dir}/**/*{pattern}*&#8221;, recursive=True)[:10]
    
    if not files:
        return f&#8221;No files found matching &#8216;{pattern}&#8217;&#8221;
    
    result = f&#8221;Found {len(files)} file(s):\n&#8221;
    for f in files:
        result += f&#8221;- {f}\n&#8221;
    return result</code></pre><h4>3. Creating the Agent with tool access</h4><pre><code>agent = Agent(
    name=&#8221;FileSearchAssistant&#8221;,
    instructions=&#8221;You help users search for files. Be concise.&#8221;,
    model=&#8221;gpt-4.1&#8221;,
    tools=[search_files],
)</code></pre><h4>4. Capturing User Audio</h4><pre><code>def record_audio(duration=8, samplerate=24000):
    &#8220;&#8221;&#8220;Record audio from microphone.&#8221;&#8220;&#8221;
    print(f&#8221;Recording for {duration} seconds... Speak now!&#8221;)
    
    recording = sd.rec(int(duration * samplerate), samplerate=samplerate, 
                      channels=1, dtype=np.int16)
    sd.wait()
    
    wavfile.write(&#8221;user_input.wav&#8221;, samplerate, recording)
    return recording.flatten()</code></pre><h4>5. Processing Audio Through Pipeline</h4><pre><code>async def process_voice():
    # Capture voice
    audio_data = record_audio(duration=8)
    
    # Create pipeline and process
    pipeline = VoicePipeline(workflow=SingleAgentVoiceWorkflow(agent))
    audio_input = AudioInput(buffer=audio_data)
    result = await pipeline.run(audio_input)
    
    return result</code></pre><h4>6. Playing Agent Response</h4><pre><code>async def main():
    print(&#8221;Voice Agent - File Search&#8221;)
    
    # Process voice through pipeline
    result = await process_voice()
    
    # Play response
    print(&#8221;Playing response...&#8221;)
    player = sd.OutputStream(samplerate=24000, channels=1, dtype=np.int16)
    player.start()
    
    output_audio = []
    async for event in result.stream():
        if event.type == &#8220;voice_stream_event_audio&#8221;:
            player.write(event.data)
            output_audio.append(event.data)
    
    player.stop()
    
    # Save output
    if output_audio:
        agent_audio = np.concatenate(output_audio)
        wavfile.write(&#8221;agent_output.wav&#8221;, 24000, agent_audio)
    
    print(&#8221;Done!&#8221;)

if __name__ == &#8220;__main__&#8221;:
    asyncio.run(main())</code></pre><p><strong>To run:</strong></p><pre><code>python voice_agent.py</code></pre><h4>Below is an example conversation</h4><p>I asked: &#8220;Search for MCP text file in the Applications folder&#8221;</p><p>Listen to my voice input</p><div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;90b8e944-4a83-49fb-9000-64797b69429a&quot;,&quot;duration&quot;:5.041633,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><p>The agent searched through my Applications directory and found matching files. </p><p>Listen to agent&#8217;s response</p><div class="native-audio-embed" data-component-name="AudioPlaceholder" data-attrs="{&quot;label&quot;:null,&quot;mediaUploadId&quot;:&quot;9f5c2579-9290-47d1-ba60-4fc38754cfbd&quot;,&quot;duration&quot;:17.29306,&quot;downloadable&quot;:false,&quot;isEditorNode&quot;:true}"></div><h4>Choosing Your Transport Method</h4><p>Latency matters in voice agents. <a href="https://platform.openai.com/docs/guides/realtime-models-prompting#meet-the-models">OpenAI&#8217;s Realtime API</a> offers two low-latency transport methods.</p><h4><strong>1. WebRTC (Client-side)</strong></h4><ul><li><p>Best for browser-based voice agents.</p></li><li><p>Peer-to-peer connection with low latency.</p></li><li><p>Direct audio streaming between user and OpenAI.</p></li></ul><h4><strong>2. WebSocket (Server-side)</strong></h4><ul><li><p>Best for phone call systems.</p></li><li><p>More control over the call flow.</p></li><li><p>Required integrations like Twilio.</p></li></ul><blockquote><p>The <a href="https://openai.github.io/openai-agents-js/">OpenAI Agents SDK</a> automatically picks the right transport. It uses WebRTC in browsers and WebSocket for server-side applications.</p></blockquote><h4>Building a Phone Call Agent</h4><p>For phone calls, you need a telephony service like Twilio. The architecture looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!75EK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!75EK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 424w, https://substackcdn.com/image/fetch/$s_!75EK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 848w, https://substackcdn.com/image/fetch/$s_!75EK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 1272w, https://substackcdn.com/image/fetch/$s_!75EK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!75EK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png" width="1131" height="390" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:390,&quot;width&quot;:1131,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:85529,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.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_!75EK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 424w, https://substackcdn.com/image/fetch/$s_!75EK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 848w, https://substackcdn.com/image/fetch/$s_!75EK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.png 1272w, https://substackcdn.com/image/fetch/$s_!75EK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F615aa6c1-9f87-416b-a850-00580e4ca303_1131x390.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><strong>How it works:</strong></h4><ol><li><p>User calls a Twilio phone number.</p></li><li><p>Twilio connects to WebSocket.</p></li><li><p>WebSocket forwards streaming audio to OpenAI.</p></li><li><p>The Realtime OpenAI API responds back in audio.</p></li><li><p>Audio streams back through the same path.</p></li></ol><p>OpenAI provides a <a href="https://github.com/openai/openai-realtime-twilio-demo">complete demo on GitHub</a> showing how to build a phone call agent with Twilio.</p><h2>4. Building Voice Agent without Code - Vapi.ai</h2><p>Not everyone wants to write code. Sometimes you just need to build the agent fast. That&#8217;s where platforms like <a href="https://www.voiceflow.com/">Voiceflow</a> and <a href="https://vapi.ai/">Vapi</a> comes into the picture.</p><h4>Building with Vapi:</h4><p>Vapi&#8217;s platform is self-explanatory. You can explore on your own. But here&#8217;s what I built as an example.</p><p>I created a voice assistant called &#8220;Abigail&#8221; that checks domain availability. You call the assistant, ask if a domain name is available, and it tells you in real-time. Simple use case to show how Vapi works.</p><h4>1. Create an Assistant</h4><p>I created an assistant called &#8220;Abigail&#8221; and configured the basics like model, voice, and first message.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6grS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6grS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 424w, https://substackcdn.com/image/fetch/$s_!6grS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 848w, https://substackcdn.com/image/fetch/$s_!6grS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 1272w, https://substackcdn.com/image/fetch/$s_!6grS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6grS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png" width="1913" height="922" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:922,&quot;width&quot;:1913,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173553,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15862bb9-fa87-412f-ad0f-3cf97895015c_1913x922.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_!6grS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 424w, https://substackcdn.com/image/fetch/$s_!6grS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 848w, https://substackcdn.com/image/fetch/$s_!6grS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.png 1272w, https://substackcdn.com/image/fetch/$s_!6grS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe09f2a07-612c-4452-990a-79e614d23cf2_1913x922.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><strong>2. Add Tools</strong></h4><p>You can add available tools and integrations. Slack, Google Sheets, API calls etc.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BhHD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BhHD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 424w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 848w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 1272w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BhHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png" width="1911" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1911,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173253,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67ffe741-df71-4248-b708-842549d418ed_1911x971.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_!BhHD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 424w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 848w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.png 1272w, https://substackcdn.com/image/fetch/$s_!BhHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffec614db-b8fb-4893-8ce4-032f8a63416c_1911x971.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>I integrated MCP Tool to check domain availability. Tools let your agent take actions during calls. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2kbn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2kbn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 424w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 848w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 1272w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2kbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png" width="1905" height="921" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:921,&quot;width&quot;:1905,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:138549,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F190a9e5a-4b45-496d-b2eb-fe55d84689b8_1905x921.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_!2kbn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 424w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 848w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.png 1272w, https://substackcdn.com/image/fetch/$s_!2kbn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e15f861-60fd-45c5-ba0b-0d56e63d1c3d_1905x921.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><strong>3. Configure Call Settings</strong></h4><p>Vapi supports both inbound and outbound calls. You can configure phone numbers for either direction.</p><p>Inbound - Agent receives calls. Users call a phone number, and your agent answers.</p><p>Outbound - Agent makes calls. The agent dials phone numbers to reach users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xE16!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xE16!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 424w, https://substackcdn.com/image/fetch/$s_!xE16!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 848w, https://substackcdn.com/image/fetch/$s_!xE16!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 1272w, https://substackcdn.com/image/fetch/$s_!xE16!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xE16!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png" width="1910" height="911" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:911,&quot;width&quot;:1910,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156343,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51b3e0ea-6ebe-408d-b275-2b1bb6c1787f_1910x911.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_!xE16!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 424w, https://substackcdn.com/image/fetch/$s_!xE16!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 848w, https://substackcdn.com/image/fetch/$s_!xE16!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.png 1272w, https://substackcdn.com/image/fetch/$s_!xE16!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a2478c5-8616-48cf-b00e-fe1a4171bede_1910x911.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><strong>4. Test and Publish your Voice Assistant</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mTL9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mTL9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 424w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 848w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 1272w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mTL9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png" width="1206" height="191" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:191,&quot;width&quot;:1206,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27375,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.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_!mTL9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 424w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 848w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 1272w, https://substackcdn.com/image/fetch/$s_!mTL9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b80031-de85-479c-b7af-67d64c56baf0_1206x191.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I tested it with a call. Here&#8217;s the transcript.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-aZE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-aZE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 424w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 848w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 1272w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-aZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png" width="1240" height="868" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:868,&quot;width&quot;:1240,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114837,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.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_!-aZE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 424w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 848w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.png 1272w, https://substackcdn.com/image/fetch/$s_!-aZE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c30830f-3648-4a1e-b80c-796a084a52b6_1240x868.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>You can connect Vapi with n8n agentic workflow. We&#8217;ll save that topic for next blog. If you want to see how it works now, check out this video that walks through the <a href="https://vapi.ai/library/how-to-connect-vapi-to-n8n-ai-agents-in-9-minutes">vapi and n8n setup</a>.</p><h2>Building with Voiceflow: FAQ Agent </h2><p><a href="https://www.voiceflow.com/">Voiceflow</a> is another no-code platform for voice agents. It&#8217;s drag, drop, and configure.</p><p>I built an FAQ agent called &#8220;Ellie&#8221; for Dr. Jones Clinic. The agent answers common questions about consultation hours, appointments, insurance, and services.</p><h4><strong>1. Create the Agent</strong></h4><p>I started with a new agent and named it &#8220;Ellie - The FAQ Agent.&#8221;</p><p>I did set up a greeting message.  The Start block connects to the Agent block. That&#8217;s the basic flow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AQ1w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AQ1w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 424w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 848w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 1272w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AQ1w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png" width="1026" height="428" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:428,&quot;width&quot;:1026,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64071,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.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_!AQ1w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 424w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 848w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.png 1272w, https://substackcdn.com/image/fetch/$s_!AQ1w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff165d03e-4f96-4b3c-9cfe-7d114077fc76_1026x428.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><strong>2. Add Knowledge Base</strong></h4><p>I went to the Knowledge Base section and created a data source called &#8220;Appointment &amp; Scheduling.&#8221; Added FAQs as text content.</p><p>The &#8220;Ellie - The FAQ Agent&#8221; can now read this knowledge base and respond to user&#8217;s questions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hsyd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hsyd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 424w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 848w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 1272w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hsyd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png" width="1456" height="708" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:708,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119527,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.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_!hsyd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 424w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 848w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.png 1272w, https://substackcdn.com/image/fetch/$s_!hsyd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F246a69cb-b5e0-4eef-bfc7-3035c0edce3a_1899x924.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><strong>3. Connect a Phone Number</strong></h4><p>I went to Interfaces &gt; Telephony &gt; Phone numbers </p><p>I added a Twilio number. Now the agent can receive calls.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GnEG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GnEG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 424w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 848w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 1272w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GnEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png" width="1456" height="393" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:393,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46367,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.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_!GnEG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 424w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 848w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.png 1272w, https://substackcdn.com/image/fetch/$s_!GnEG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ddfa808-367e-48e3-b579-868fdefce6b8_1571x424.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><strong>4. Test and Publish</strong></h4><p>I talked to Ellie. Asked about insurance services. She answered using the knowledge base. Here is the transcript.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5kwd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5kwd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 424w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 848w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 1272w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5kwd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png" width="1456" height="669" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:669,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217493,&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/178455948?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.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_!5kwd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 424w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 848w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.png 1272w, https://substackcdn.com/image/fetch/$s_!5kwd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff18c01af-fce3-4dcb-a136-ad966057d74a_1827x839.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>Other platforms like <a href="https://www.retellai.com/">Retell AI</a> and <a href="https://synthflow.ai/">Synthflow</a> offer similar capabilities. The setup is mostly the same - configure, connect, and deploy.</p><h4>Here&#8217;s a customer support agent I built in Retell AI</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;dafddc53-351e-448c-9f77-7b6f38cdb0c2&quot;,&quot;duration&quot;:null}"></div><h2>5. Further Reading: TTS, STT, and Speech-to-Speech Models and APIs</h2><p>Building voice agents means choosing the right models. Here are resources to explore.</p><h4><strong>Speech-to-Speech Models:</strong></h4><ul><li><p><a href="https://artificialanalysis.ai/models/speech-to-speech#bigBenchAudio">Speech to Speech Model Comparison</a> </p></li><li><p><a href="https://www.tavus.io/post/speech-to-speech">8 Best Speech to Speech APIs</a> </p></li></ul><h4><strong>Speech-to-Text (STT):</strong></h4><ul><li><p><a href="https://modal.com/blog/open-source-stt">Opensource Speech to Text Models</a> </p></li><li><p><a href="https://www.telusdigital.com/insights/data-and-ai/article/10-speech-to-text-models-tested">Ten Speech to Text Models Tested</a></p></li><li><p><a href="https://deepgram.com/learn/best-speech-to-text-apis">Speech to Text APIs</a></p></li></ul><h4><strong>Text-to-Speech (TTS):</strong></h4><ul><li><p><a href="https://tts-agi-tts-arena-v2.hf.space/leaderboard">TTS Leaderboard on Hugging Face</a> </p></li><li><p><a href="https://modal.com/blog/open-source-tts">Open-Source Text to Speech Models</a> </p></li><li><p><a href="https://huggingface.co/models?pipeline_tag=text-to-speech">Hugging Face Text to Speech Models</a></p></li></ul><p>These links will help you pick the right models for your voice agent. Compare costs, latency, accuracy, and pick what works for you.</p><h2>Conclusion</h2><p>We covered two ways of building voice agents.</p><ul><li><p>Code frameworks like OpenAI SDK, </p></li><li><p>No-code platforms like Vapi, Voiceflow</p></li></ul><p>Code gives you control. No-code gives you speed. Pick what fits for you.     </p><p>Start small. Build one voice agent. Test it and see what works.                                  </p><p>Voice AI is here. The tools are ready. Now it&#8217;s your turn to build one.</p><p>Happy Building!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-build-voice-agents?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/how-to-build-voice-agents?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/how-to-build-voice-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[How to Prepare Agentic Apps for Production]]></title><description><![CDATA[Getting your agentic apps ready for real users]]></description><link>https://www.devshorts.in/p/how-to-prepare-agentic-apps-for-production</link><guid isPermaLink="false">https://www.devshorts.in/p/how-to-prepare-agentic-apps-for-production</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 05 Nov 2025 15:45:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cr9C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I attended an AI conference where teams from big companies shared how they moved their agentic apps to production. The talks were full of real lessons from people who&#8217;ve built and deployed agentic systems in production.</p><p>When you build an agent, the demo usually looks smooth. But once you run it in production, new challenges appear around safety, memory, recovery, and control.</p><p>The conference focused on what we need to consider before moving agentic apps to production. Below are the five areas that were discussed the most. That&#8217;s exactly what we&#8217;ll cover in this blog.</p><ol><li><p>Guardrails</p></li><li><p>Memory Management</p></li><li><p>Error Handling and Recovery</p></li><li><p>Human in the Loop</p></li><li><p>Observability and Monitoring</p></li></ol><p>If you are moving your agentic app to production, make sure you can confidently say yes to these questions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cr9C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cr9C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 424w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 848w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 1272w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cr9C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png" width="1096" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:438,&quot;width&quot;:1096,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:250294,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.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_!cr9C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 424w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 848w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 1272w, https://substackcdn.com/image/fetch/$s_!cr9C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe568706e-e21f-49b3-b02d-7f874be81d19_1096x438.png 1456w" sizes="100vw" fetchpriority="high"></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="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. Guardrails</strong></h2><p>If you ask an AI chatbot for something harmful, it will refuse. That is a guardrail which keeps the system safe, ethical, and within limits.</p><p>Guardrails act as a shield for agentic apps. They protect the agent from bad inputs and make sure it responds in the right way. In simple terms it defines the boundaries for an agent&#8217;s behavior. They keep it safe, prevent unwanted actions, and ensure it only operates within its intended scope.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FIP4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FIP4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 424w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 848w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 1272w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FIP4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png" width="1098" height="543" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:543,&quot;width&quot;:1098,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:104278,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.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_!FIP4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 424w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 848w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.png 1272w, https://substackcdn.com/image/fetch/$s_!FIP4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb1a37f5-1933-4145-8e07-71405bc5ce42_1098x543.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>Why Guardrails</h4><p>In real-world setups, guardrails don&#8217;t stop at inputs and outputs. They extend across multiple layers to control how agents act, decide, and interact with tools or users. Each layer adds safety and stability to the system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iRwe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iRwe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 424w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 848w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 1272w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iRwe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png" width="1181" height="577" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44bca211-28df-40f6-850a-7b7fde836292_1181x577.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:1181,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:195303,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.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_!iRwe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 424w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 848w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.png 1272w, https://substackcdn.com/image/fetch/$s_!iRwe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44bca211-28df-40f6-850a-7b7fde836292_1181x577.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>Tools and Frameworks for Guardrails</h4><p>There are two main ways to add guardrails when taking an agentic system to production.</p><p>You can use the built-in guardrails that come with your agent framework or integrate separate libraries for more control and compliance.</p><p>Frameworks like LangGraph and OpenAI Agent SDK already include basic checks such as input moderation, safe tool access, and retry logic. For most apps, these are enough.</p><p>If you need deeper validation, you can plug in external toolkits built for strong control.</p><ul><li><p><a href="https://github.com/guardrails-ai/guardrails">Guardrails AI</a> is a Python framework. It helps build reliable and safe AI applications. It works by adding input and output &#8220;guards&#8221; around your LLM calls. These guards detect and reduce different types of risks in real time, such as toxic language, personal data leaks or exposed secrets.</p></li><li><p><a href="https://docs.nvidia.com/nemo/guardrails/latest/index.html">NVIDIA NeMo Guardrails</a> is an open-source toolkit by NVIDIA. It lets you add programmable guardrails to your AI Apps. It works by layering &#8220;rails&#8221; between your application logic and the LLM.  It controls how the model behaves, what it says, and what actions it takes.</p></li><li><p><a href="https://github.com/microsoft/presidio">Microsoft Presidio</a> is an open-source framework. It focuses on detecting and redacting personal or sensitive data (PII) in text and images. It has options for connecting to external PII detection models.</p></li><li><p><a href="https://docs.langchain.com/oss/javascript/langchain/guardrails">Langchain Guardrails</a> provide built in guardrails. They can detect sensitive information, enforce policies, validate outputs, and prevent unsafe behaviors before they cause problems.</p></li><li><p><a href="https://openai.github.io/openai-agents-python/guardrails">OpenAI Agents SDK</a> includes built-in guardrails for both inputs and outputs. These run alongside your agents to validate and enforce safe behavior in agentic apps.</p></li><li><p><a href="https://guardrails.openai.com/">OpenAI Guardrails</a> is a ready-to-use toolkit for adding safety and compliance checks to your LLM apps. You can select prebuilt guardrails such as Mask PII, Moderation API, or Jailbreak Detection directly from the dashboard, export them as a JSON config file, and use them in your application.</p></li></ul><p>You can also build your own guardrails for your app. Think of them as simple toolkits that protect your agentic system and keep it under control.</p><h2><strong>2. Memory Management</strong></h2><p>When you chat with ChatGPT, it remembers what you said earlier. That is what memory does. It helps the system stay consistent and feel more human.</p><p>Memory helps the agent retain context, recall past steps so it can respond properly. </p><p>An agent without memory starts from zero every time. With memory, it remembers what happened, adapts to the user, and gets smarter with every run.</p><p><a href="https://redis.io/blog/build-smarter-ai-agents-manage-short-term-and-long-term-memory-with-redis/">The Redis blog</a> explains this well. Here&#8217;s how short-term and long-term memory connect with the agent, tools, and LLM.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZPoa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZPoa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 424w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 848w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZPoa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;Image&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!ZPoa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 424w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 848w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!ZPoa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F093bfbb3-db4b-4632-acb5-5e62d7170188_3840x1920.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><figcaption class="image-caption">Source: - <a href="https://redis.io/blog/build-smarter-ai-agents-manage-short-term-and-long-term-memory-with-redis/">Agent Memory - Redis</a></figcaption></figure></div><h4><strong>Types of Memory</strong></h4><p>Agents work with two types of memory.</p><ul><li><p>Short-term memory &#8211; Keeps track of recent steps or the current task.</p></li><li><p>Long-term memory &#8211; Holds information that should last beyond a single run. This could be user details, preferences, or past interactions.</p></li></ul><p>Different frameworks handle memory in their own ways.</p><p>In LangGraph, every message is saved in the state variable as an AIMessage or HumanMessage. This helps the agent maintain context during the current session. When the agent restarts, it starts fresh. That&#8217;s short-term memory.</p><p>To make it remember across sessions, you need long-term memory. Here, past messages or summaries are stored externally, usually in a vector database or memory store. This allows the agent to retrieve relevant context from older sessions when needed.</p><p><a href="https://www.youtube.com/watch?v=JTL0yp85FsE">The LangChain video</a> explains this Agent memory well. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LPNR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LPNR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 424w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 848w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 1272w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LPNR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png" width="861" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:861,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:226067,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb05c7bb3-c0fb-47be-bb3c-29018b59040f_861x540.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_!LPNR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 424w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 848w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.png 1272w, https://substackcdn.com/image/fetch/$s_!LPNR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75c8e1bb-49f6-4bd8-9419-f3f7c2386a07_861x496.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><figcaption class="image-caption">Source: - <a href="https://www.youtube.com/watch?v=JTL0yp85FsE">Langchain&#8217;s Short and Long Memory</a></figcaption></figure></div><h4><strong>Why Memory Matters</strong></h4><ul><li><p>Most LLMs are stateless. They don&#8217;t remember what happened earlier unless we tell them. In real-world apps, that&#8217;s not enough.</p></li><li><p>Agents need memory to recall user preferences, track progress, and carry context across steps. Without it, they repeat questions and lose continuity.</p></li></ul><ul><li><p>Without good memory design, too much context slows down responses, increases cost, and can even confuse the model.</p></li></ul><h4><strong>Tools and Frameworks for Memory</strong></h4><p>When you&#8217;re building agentic apps, you don&#8217;t have to invent your memory layer from scratch. There are tools and frameworks ready for use.</p><ul><li><p><a href="https://mem0.ai/">Mem0:</a> A self-improving memory layer for AI agents that stores user preferences and past sessions. It supports short- and long-term memory.</p></li><li><p><a href="https://help.getzep.com/graphiti">Graphiti:</a> An open-source Python framework for building temporally aware knowledge graphs for agents. It captures relationships over time, enabling agents to reason beyond vector store.</p></li><li><p><a href="https://github.com/getzep/zep">Zep</a>: Zep is a memory platform for AI agents. It learns from user interactions. It builds a time-based knowledge graph that helps agents give accurate and personalized answers. Over time, it keeps learning and improving user experience. It is powered by Graphiti.</p></li></ul><h2><strong>3. Error Handling and Recovery</strong></h2><p>When you run agentic apps in production, things will break. A tool call might fail, an API might timeout, or the model might return something you didn&#8217;t expect. Error handling and recovery is about catching those issues, dealing with them properly, and keeping the agent running safely.</p><h4><strong>Why It Matters</strong></h4><p>Agentic apps rarely fail because of big bugs. They fail because of the small things like a bad response, or a tool call that never returns. One silent error can stop the whole workflow. Without a plan, the agent either crashes or keeps looping endlessly trying to fix itself.</p><p>Good error handling makes your agent resilient. It helps the agent fail safely and continue from where it left off.</p><h4><strong>How to Handle Errors in Production</strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yAF0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yAF0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 424w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 848w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 1272w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yAF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png" width="980" height="610" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:610,&quot;width&quot;:980,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:192221,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.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_!yAF0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 424w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 848w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.png 1272w, https://substackcdn.com/image/fetch/$s_!yAF0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58a81bf2-6c01-4814-9f74-629e9058ff55_980x610.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><ul><li><p>Retry and fallback - Add retry logic for every tool or API call and have a fallback plan when retries fail.</p></li><li><p>Save progress - Use checkpoints to save the agent&#8217;s state so it can resume after failure.</p></li><li><p>Validate outputs - Always check if the model&#8217;s response or tool output is valid before using it.</p></li><li><p>Add a human step when needed - Some errors need manual review. Don&#8217;t let the agent keep guessing.</p></li><li><p>Log and monitor failures - Track the errors. This helps you fix recurring issues early.</p></li></ul><h2><strong>4. Human in the Loop (HITL)</strong></h2><p>Human in the Loop (HITL) adds a human step inside the agent&#8217;s workflow. The agent pauses, waits for human input or approval, and then continues. It keeps humans involved at key moments and lets them guide the agent when needed.</p><h4><strong>Why It Matters</strong></h4><p>Agents can automate a lot, but not everything should run on autopilot. When a task involves compliance, sensitive data, or critical actions, a human check adds safety. It keeps the system reliable. </p><h4><strong>How to Add HITL in Production</strong></h4><p>Many frameworks support adding human-in-the-loop steps directly into your workflows.</p><ol><li><p>You can add a <a href="https://docs.langchain.com/oss/python/langgraph/interrupts">LangGraph Human in the Loop</a> step using the <code>interrupt()</code> function inside a node. The agent stops, waits for feedback, and then continues from the same point. This is useful when the agent needs human confirmation before taking an action.</p></li><li><p><a href="https://docs.crewai.com/en/learn/human-input-on-execution">CrewAI supports human-input tasks</a> within the workflow. You can enable this by setting <code>human_input=True</code> in the task configuration. When the agent reaches that task, it pauses, collects feedback, and moves forward with the updated response.</p></li><li><p><a href="https://openai.github.io/openai-agents-js/guides/human-in-the-loop">In OpenAI&#8217;s Agents SDK, you can mark certain actions for approval</a> using <code>needsApproval=True</code>. The agent pauses at those steps until the user reviews and confirms, keeping humans involved in key decisions.</p></li><li><p><a href="https://google.github.io/adk-docs/agents/multi-agents/#human-in-the-loop-pattern">Google&#8217;s ADK supports a human-in-the-Loop pattern</a>. You can create a small review agent that asks for user confirmation before the main agent continues. This keeps humans in control of important decisions.</p></li></ol><h2>5. Observability and Monitoring</h2><p>Almost every team at the conference talked about this part. No matter how advanced their setup was, observability came up again and again.</p><p>Observability shows how your agent really works, not just what it outputs. It helps you follow every step the model takes, from the first prompt to the final response. </p><p>In real-world agentic systems where many tools, memory calls, and APIs run together, observability becomes essential. It helps you spot failures early, understand the cause, and measure how each part performs.</p><h4><strong>Langfuse for Observability and Monitoring</strong></h4><p><a href="https://langfuse.com/">Langfuse</a> is an open-source observability tool built for LLM and agentic applications. It records each step in the workflow and shows a full trace of what happened. You can see how prompts evolved, which tools were called, what data was fetched, and how long each step took.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sYUt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sYUt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 424w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 848w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 1272w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sYUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png" width="983" height="753" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ebc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:753,&quot;width&quot;:983,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:380122,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.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_!sYUt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 424w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 848w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.png 1272w, https://substackcdn.com/image/fetch/$s_!sYUt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febc0128d-e954-4467-b4e9-8618d5b7775e_983x753.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>I integrated Langfuse into one of my agentic apps to see what kind of traces it captures and how deep the visibility goes.</p><p>I was able to capture all traces and observations from the app in one place. I could see the total traces, token usage, and model cost for my app at a glance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5-5E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5-5E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 424w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 848w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 1272w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5-5E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png" width="1456" height="762" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:762,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80248,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.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_!5-5E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 424w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 848w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.png 1272w, https://substackcdn.com/image/fetch/$s_!5-5E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58607d7f-c98c-42ce-afdd-4cd256c69abf_1644x860.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>This view gave me a full snapshot of each run - inputs, outputs, and all the metadata in between. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gyqX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gyqX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 424w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 848w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 1272w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gyqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png" width="1456" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:157935,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.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_!gyqX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 424w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 848w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.png 1272w, https://substackcdn.com/image/fetch/$s_!gyqX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaa76a14-542e-4a40-b2da-b55b57031353_1654x781.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>When I opened a single trace, I could see the full flow, how the user&#8217;s input moved through each tool and LLM call, step by step. Both preview and raw JSON views made it clear what data was being passed across the system.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!shFY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!shFY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 424w, https://substackcdn.com/image/fetch/$s_!shFY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 848w, https://substackcdn.com/image/fetch/$s_!shFY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 1272w, https://substackcdn.com/image/fetch/$s_!shFY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!shFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png" width="1145" height="925" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:925,&quot;width&quot;:1145,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123744,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.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_!shFY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 424w, https://substackcdn.com/image/fetch/$s_!shFY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 848w, https://substackcdn.com/image/fetch/$s_!shFY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.png 1272w, https://substackcdn.com/image/fetch/$s_!shFY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb90f446-7f89-4f15-b274-7b5423d3d7c6_1145x925.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>It also captured detailed tool-level metrics. Langfuse showed which tools were triggered, how long they took, and how much each call cost. It&#8217;s a simple way to track efficiency and debug issues without digging through logs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TO4N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TO4N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 424w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 848w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 1272w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TO4N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png" width="1142" height="471" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:471,&quot;width&quot;:1142,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73768,&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/177480321?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.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_!TO4N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 424w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 848w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.png 1272w, https://substackcdn.com/image/fetch/$s_!TO4N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0692c7d-7c55-4c57-b50c-747661471fce_1142x471.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>Taking agentic apps to production needs more than just good prompts or models. </p><p>They need safety, memory, recovery, human checks, and visibility.</p><ul><li><p>Guardrails keep your agents safe.</p></li><li><p>Memory helps them stay consistent.</p></li><li><p>Error handling makes them reliable.</p></li><li><p>Human-in-the-loop brings control.</p></li><li><p>Observability shows how everything works together.</p></li></ul><p>Build, test, observe, and refine. That&#8217;s how good agents become production ready.</p><p>Hope you find this blog useful!</p><p>Happy Building!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-prepare-agentic-apps-for-production?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/how-to-prepare-agentic-apps-for-production?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/how-to-prepare-agentic-apps-for-production?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[OpenAI AgentKit : How to build AI Agents in Minutes]]></title><description><![CDATA[A step-by-step guide to building AI agents using AgentKit]]></description><link>https://www.devshorts.in/p/openai-agentkit-how-to-build-ai-agents</link><guid isPermaLink="false">https://www.devshorts.in/p/openai-agentkit-how-to-build-ai-agents</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 29 Oct 2025 15:40:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/01dce72a-442b-4b4f-8ce3-b8ef36a7a0aa_1277x683.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI agents are becoming more popular. Sooner or later every web application will have an agent running inside.</p><p>As a result, many new agent frameworks are appearing. Some frameworks are code-based. You write code to build agents. <a href="https://www.langchain.com/langgraph">LangGraph</a>, <a href="https://www.crewai.com/">CrewAI</a>, <a href="https://github.com/microsoft/autogen">AutoGen</a> are some of the code-based frameworks.</p><p>Some are no-code frameworks. These let you drag and drop components to create agentic workflows. Frameworks like <a href="https://n8n.io/">n8n</a> and <a href="https://www.langflow.org/">LangFlow</a> work this way.</p><p>OpenAI recently released one of these no-code frameworks at their Dev Day 2025. It&#8217;s called <a href="https://openai.com/index/introducing-agentkit/">AgentKit</a>.</p><p>In this blog we will explore AgentKit and build a real agent with it. We will cover,</p><ol><li><p>Agent Frameworks </p></li><li><p>Code vs No-Code Frameworks</p></li><li><p>What is Agent Kit</p></li><li><p>How to build an agent using AgentKit</p></li><li><p>Choosing the Right Agent Framework</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><strong>1. Agent Frameworks</strong></h2><p>Agent frameworks help us build AI agents faster by providing useful tools and services.</p><p>Agent frameworks fall into two categories. </p><p>Code based frameworks give us packages and libraries to build agents directly in code. They offer full control and deep customization. They require more time to learn and build with, but they can handle complex logic.</p><p>No code frameworks provide visual tools where we drag and drop blocks to create the workflow. They are faster to begin with, and we can build agents in minutes. They offer less control for advanced logic, but they are great for quick automation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BgyO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BgyO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 424w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 848w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 1272w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BgyO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png" width="1034" height="442" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:442,&quot;width&quot;:1034,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88586,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c5f5db7-0203-488c-84c8-b441baebdaa7_1103x565.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_!BgyO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 424w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 848w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.png 1272w, https://substackcdn.com/image/fetch/$s_!BgyO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4192fa00-3c0e-4646-9299-1bbff28e5bcb_1034x442.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>2. Code vs No-Code Frameworks</h2><p>Each approach has its own strengths. The table below breaks down how they compare across setup time, control level, deployment, and 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_!tP9z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tP9z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 424w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 848w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 1272w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tP9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png" width="660" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:660,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70398,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F221359b0-14db-427e-8f3e-cf50526aa590_660x726.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_!tP9z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 424w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 848w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.png 1272w, https://substackcdn.com/image/fetch/$s_!tP9z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88a73d7f-ff24-48e6-b59b-34c49d78e0ac_660x580.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. What is Agent Kit</h2><p>AgentKit is one of the no code frameworks. AgentKit comes with four main components. </p><ul><li><p><a href="https://platform.openai.com/agent-builder">Agent Builder</a></p></li><li><p><a href="https://platform.openai.com/docs/guides/chatkit">ChatKit</a></p></li><li><p>Connector Registry</p></li><li><p><a href="https://platform.openai.com/docs/guides/trace-grading">Evals for Agents</a></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_!asja!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!asja!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 424w, https://substackcdn.com/image/fetch/$s_!asja!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 848w, https://substackcdn.com/image/fetch/$s_!asja!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 1272w, https://substackcdn.com/image/fetch/$s_!asja!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!asja!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png" width="812" height="318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:318,&quot;width&quot;:812,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62828,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F37269dee-5a7a-4515-99ec-9f038f533e89_924x429.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_!asja!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 424w, https://substackcdn.com/image/fetch/$s_!asja!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 848w, https://substackcdn.com/image/fetch/$s_!asja!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.png 1272w, https://substackcdn.com/image/fetch/$s_!asja!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff230c19e-6413-4ea4-a09e-1798d181b5d7_812x318.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>Agent Builder: </h4><p>It is a visual canvas. You can drag and drop nodes to build your agent. No coding needed for workflows. You can also export the workflow as code if you want to customize it later.</p><h4>ChatKit:</h4><p>It is an embeddable chat interface. Instead of building your own chat UI, you can use ChatKit to test the agentic workflow.</p><h4>Connector Registry:</h4><p>Connector Registry consists of tools you can connect with agents. There are some built-in tools like Google Drive, Dropbox, and SharePoint.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kUN1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kUN1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 424w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 848w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 1272w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kUN1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png" width="1269" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1269,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:169893,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.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_!kUN1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 424w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 848w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.png 1272w, https://substackcdn.com/image/fetch/$s_!kUN1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63b69122-8ff4-4350-bfe1-5af88f55c2a5_1269x601.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>If a tool is not available in the registry, you can connect it through <a href="https://github.com/modelcontextprotocol/servers">MCP (Model Context Protocol) servers</a>.</p><h4>Evals for Agents:</h4><p>It is used to evaluate Agent Performance across many examples. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7tL1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7tL1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 424w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 848w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 1272w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7tL1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png" width="1456" height="362" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:362,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90510,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.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_!7tL1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 424w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 848w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 1272w, https://substackcdn.com/image/fetch/$s_!7tL1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83ea2c57-a0d9-4312-9e7f-d16629ca19b6_1856x462.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>4. How to build an agent using AgentKit</h2><p>Let us build a simple agent using AgentKit. The agent reads a GitHub repo and deploys it to Render, Vercel, or Railway based on what the user asks.</p><p>Here are the steps to build it,</p><h4>Step 1: Create the Workflow in the Agent Builder</h4><p>Open <a href="https://platform.openai.com/agent-builder">Agent Builder</a> and create a new workflow. You get a blank canvas with visual nodes. Drag and drop to start shaping the decision flow.</p><h4>Step 2: Add the Deployment Classifier Agent</h4><p>The workflow starts with a Start node. Add an Agent node next to it and name it Deployment Classifier Agent. This agent reads the user input and classifies the deployment target. It returns a JSON with two fields, the GitHub repo and the target platform. Here is the configuration.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-sGr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-sGr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 424w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 848w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 1272w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-sGr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png" width="434" height="658" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aae4454-9751-4247-98f2-22630b498a55_434x658.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:658,&quot;width&quot;:434,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65748,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.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_!-sGr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 424w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 848w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.png 1272w, https://substackcdn.com/image/fetch/$s_!-sGr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aae4454-9751-4247-98f2-22630b498a55_434x658.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>Below is my response schema</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D7DZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D7DZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 424w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 848w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 1272w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D7DZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png" width="926" height="494" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:494,&quot;width&quot;:926,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52416,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.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_!D7DZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 424w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 848w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.png 1272w, https://substackcdn.com/image/fetch/$s_!D7DZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a1a9880-fbf9-4578-88e6-a3b8f75acb23_926x494.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>Here is a sample output from the Deployment Classifier Agent when the user says &#8220;deploy this github repo in render&#8221;.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AYgv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AYgv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 424w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 848w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 1272w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AYgv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png" width="473" height="139" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:139,&quot;width&quot;:473,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8710,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50210d96-e796-4c11-872c-df45ac38251c_473x139.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_!AYgv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 424w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 848w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 1272w, https://substackcdn.com/image/fetch/$s_!AYgv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe664885c-344d-4cfd-a7ce-a40db6b95f19_473x139.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can also add guardrails in the workflow. AgentKit supports PII checks, moderation, jailbreak detection, and hallucination filtering. </p><h4>Step 3: Add an If / else Node for Decision Making</h4><p>Now add an If / else node after the Deployment Classifier Agent. This node checks the output from the classifier. Based on the classification value, it sends the flow to the correct deployment agent.</p><p>If the classification value from the classifier agent is,</p><ul><li><p>vercel_deployment &#8594; Connect to Vercel Deployment Agent</p></li><li><p>render_deployment  &#8594; Connect to Render Deployment Agent</p></li><li><p>railway_deployment&#8594; Connect to Railway Deployment Agent</p></li><li><p>None of the above &#8594; Connect to Fallback Deployment Agent</p></li></ul><p>This creates a clean decision tree where every path leads to a specific action.</p><p>Below is how the If / else node is configured and connected.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZR5U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZR5U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 424w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 848w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 1272w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZR5U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png" width="1456" height="598" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:598,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173233,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.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_!ZR5U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 424w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 848w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.png 1272w, https://substackcdn.com/image/fetch/$s_!ZR5U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09b5633-fba1-4845-aa0d-64ef24774170_1912x785.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>Step 4: Configure Each Deployment Agent</h4><p>After the If / else node, create separate agents for every case and connect them to the correct branch. </p><p>Each deployment agent has its own MCP server connection. We also use the GitHub MCP server to read project files.</p><ul><li><p>Vercel Deployment Agent connects to the <a href="https://vercel.com/docs/mcp/vercel-mcp">Vercel MCP server</a> to create deployments.</p></li><li><p>Railway Deployment Agent connects to the <a href="https://docs.railway.com/reference/mcp-server">Railway MCP server</a> to trigger deployments in Railway.</p></li><li><p>Render Deployment Agent connects to the <a href="https://render.com/docs/mcp-server">Render MCP server</a> to deploy applications.</p></li><li><p>Fallback Deployment Agent responds when the platform is missing or not supported and guides the user with valid options.</p></li></ul><p>Here is the sample configuration for the Render Deployment Agent. Remember to add detailed instructions for every agent to perform tasks. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WSOT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WSOT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 424w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 848w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 1272w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WSOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png" width="444" height="725" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:725,&quot;width&quot;:444,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:57138,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.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_!WSOT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 424w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 848w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.png 1272w, https://substackcdn.com/image/fetch/$s_!WSOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6a8fc00-3c9e-4542-9bf7-bc6403f24382_444x725.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>Once the workflow is ready, we can test it using the built in chat interface. Click Preview and send a real input to see how the agent responds. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-_hw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-_hw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 424w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 848w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 1272w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-_hw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png" width="1456" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119976,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.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_!-_hw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 424w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 848w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.png 1272w, https://substackcdn.com/image/fetch/$s_!-_hw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F802ee1b4-390b-48e2-b5d6-a7c4fd5d519d_1913x790.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>Below you can see a test in action using ChatKit.</p><h4>Step 5: Test and Deploy</h4><p>Now test the workflow using a real repo. </p><blockquote><p>I asked the agent to deploy a repo to Render.</p></blockquote><p>The Deployment Classifier Agent identified it as a Render deployment. Then the If / Else node routed the flow to the Render Deployment Agent. The Render agent read the project files through the GitHub MCP server. It asked the required questions and deployed the app using the Render MCP server.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;98a36b00-f717-49e4-a1bb-37146907845c&quot;,&quot;duration&quot;:null}"></div><p>I also built a Code Roaster Agent to test more features. It checks a GitHub repo, finds code smells, and gives a fun roast with quick fix ideas.</p><p>Here is the workflow. The Repo Analyser Agent detects code issues and the If Else node routes it to the correct roast agent.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!slkt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!slkt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 424w, https://substackcdn.com/image/fetch/$s_!slkt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 848w, https://substackcdn.com/image/fetch/$s_!slkt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 1272w, https://substackcdn.com/image/fetch/$s_!slkt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!slkt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png" width="1356" height="696" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:696,&quot;width&quot;:1356,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107765,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.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_!slkt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 424w, https://substackcdn.com/image/fetch/$s_!slkt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 848w, https://substackcdn.com/image/fetch/$s_!slkt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.png 1272w, https://substackcdn.com/image/fetch/$s_!slkt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d74c080-bf5b-44c7-b320-365fcf642de9_1356x696.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>When I tested it with a small clear script, it actually complimented me for clean code. Looks like the clean code compliment agent has done its duty.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qz2A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qz2A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 424w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 848w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 1272w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qz2A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png" width="580" height="545" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:545,&quot;width&quot;:580,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93067,&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/177235013?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2ef1596-adaa-4396-8c8c-20ee230531cd_731x652.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_!Qz2A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 424w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 848w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.png 1272w, https://substackcdn.com/image/fetch/$s_!Qz2A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f19fda1-c42c-4b7c-82a1-695378511d6e_580x545.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>That is how we build agents in AgentKit. Simple and fast. Now let us compare code based and no code frameworks.</p><h2>5. Choosing the Right Agent Framework</h2><ul><li><p>Choose LangGraph when you want complex multi agent workflows with full control and state handling.</p></li><li><p>Choose AutoGen when you need flexible research style agents that work together and improve with feedback.</p></li><li><p>Choose CrewAI when you build production systems with defined roles and task delegation across teams.</p></li><li><p>Choose AgentKit when you want fast visual workflows and easy tool integration inside your application.</p></li><li><p>Choose n8n when business automation and many ready connectors are your main focus.</p></li><li><p>Choose LangFlow when you want to visually prototype agent flows and test ideas quickly.</p></li></ul><h2>Conclusion</h2><p>We started with agent frameworks and understood code based and no code approaches. We explored AgentKit and built a working agent step by step, so you now know how to use it. </p><p>Pick a real problem and try it yourself, this is the right time to ship your first agent.</p><p>Happy Building!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/openai-agentkit-how-to-build-ai-agents?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/openai-agentkit-how-to-build-ai-agents?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/openai-agentkit-how-to-build-ai-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[CLI Agents Explained: How to Choose the Right One]]></title><description><![CDATA[All about CLI Agents]]></description><link>https://www.devshorts.in/p/cli-agents-explained-how-to-choose</link><guid isPermaLink="false">https://www.devshorts.in/p/cli-agents-explained-how-to-choose</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 22 Oct 2025 14:36:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OR3F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Developers always like the command line. </p><p>There&#8217;s just something about typing on a black screen. It feels more real and comfortable. Maybe that&#8217;s why dark mode is everywhere, from docs to IDEs. </p><p>Since developers spend most of their time in the terminal, it makes sense that AI agents are coming there too.</p><p>CLI Agents are growing fast. They help with coding, reviews, and all code related tasks, right inside the terminal.</p><p>In this blog, I will cover,</p><ol><li><p>What are CLI Agents</p></li><li><p>Popular CLI Coding Agents</p></li><li><p>How CLI Coding Agents work </p></li><li><p>A closer look at Claude Code</p></li><li><p>An overall comparison of CLI agents</p></li><li><p>How to choose your CLI Agent</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></li></ol><h2>1. What are CLI Agents</h2><p>CLI agents are AI tools that run in the terminal. Most of them are coding agents. They understand your codebase, write code, fix bugs with natural language prompts. These tools run as shell commands. </p><p>Terminal AI agents interact with your codebase through an LLM.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R6qa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R6qa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 424w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 848w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 1272w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R6qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif" width="978" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:184,&quot;width&quot;:978,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95142,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.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_!R6qa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 424w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 848w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 1272w, https://substackcdn.com/image/fetch/$s_!R6qa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511f7495-df38-449d-a0ad-ef0d5dca3e52_978x184.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>2. Popular CLI Coding Agents</h2><p>There are several CLI agents out there. Each one works differently.</p><p>The three leading AI providers have their own CLI agents.</p><ul><li><p><a href="https://github.com/openai/codex">Codex CLI from OpenAI</a></p></li><li><p><a href="https://github.com/anthropics/claude-code">Claude Code from Anthropic </a></p></li><li><p><a href="https://github.com/google-gemini/gemini-cli">Gemini CLI</a> and <a href="https://jules.google/docs/cli/reference">Jules</a> from Google</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_!OR3F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OR3F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 424w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 848w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 1272w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OR3F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png" width="1456" height="1165" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1165,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:317753,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.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_!OR3F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 424w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 848w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.png 1272w, https://substackcdn.com/image/fetch/$s_!OR3F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9634f1e8-a808-4880-a70f-656551aa4bce_1799x1439.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>Alongside them, the open-source community has been very active. Developers are building their own CLI agents.</p><ul><li><p><a href="https://github.com/block/goose">Goose CLI</a></p></li><li><p><a href="https://github.com/charmbracelet/crush">Crush</a> </p></li><li><p><a href="https://github.com/QwenLM/qwen-code">Qwen Code</a></p></li><li><p><a href="https://github.com/sst/opencode">OpenCode</a></p></li><li><p><a href="https://github.com/Aider-AI/aider">Aider</a> </p></li></ul><h2>3. How CLI Agents work </h2><p>Let&#8217;s see what happens behind the scenes when you run a CLI agent in the terminal.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PIOT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PIOT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 424w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 848w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 1272w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PIOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png" width="874" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:874,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105757,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce66e35-30c7-4a0d-b489-d01d3c163499_960x834.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_!PIOT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 424w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 848w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.png 1272w, https://substackcdn.com/image/fetch/$s_!PIOT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac64e6e2-883f-4b04-b860-b29f04786e3a_874x626.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>Step 1: User Input</h4><p>You start by typing a command in your terminal. The agent reads it as plain text, for example: &#8220;add error handling to login function.&#8221;</p><h4>Step 2: Context Gathering</h4><p>The agent scans your workspace, reads your folders and files, checks your Git commits, and maps how everything connects. It also looks for files like <code>AGENTS.md</code> or <code>README.md</code> to understand your project.</p><h4>Step 3: Prompt Construction</h4><p>Next, it builds a detailed prompt for the model. The prompt includes your request, code structure, relevant files, recent changes, and coding rules. This prompt can be huge. Now LLMs can handle up to 1 million tokens.</p><h4>Step 4: LLM Invocation</h4><p>The agent sends this prompt to the LLM. It could be Claude, Gemini, OpenAI, or any open-source model. The model starts reasoning and streams the response back in real time.</p><h4>Step 5: Reasoning and Planning</h4><p>The model analyses the problem, finds the right files, and breaks the task into small steps. It decides which tools to use for reading, writing, or running commands, and then builds a clear plan before starting.</p><h4>Step 6: Agentic Execution Loop</h4><p>Now the agent begins the real work. It follows the plan, checks the results, and adjusts when something fails. It keeps looping through read, write, test, and fix until the code works as expected.</p><h4><strong>Step 7: Review &amp; Commit</strong></h4><p>When done, the agent shows you the changes. You can review them line by line, accept or reject them, and even ask for tweaks. If you approve, it commits and pushes the change with a proper message.</p><h4><strong>Step 8: Feedback &amp; Iteration</strong></h4><p>The agent learns within the session. If you prefer a different approach, it adjusts and improves. It is not training the model, but it remembers your context during the session.</p><h4><strong>Step 9: State Persistence</strong></h4><p>The agent saves your conversation, edits, and file changes. Some tools like Claude Code even offer checkpoints to revert to earlier stages or continue later from where you left off.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AtFD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AtFD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 424w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 848w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 1272w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AtFD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif" width="1309" height="1414" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1414,&quot;width&quot;:1309,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:990168,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.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_!AtFD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 424w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 848w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.gif 1272w, https://substackcdn.com/image/fetch/$s_!AtFD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29a57ec1-c06c-41b1-88c1-bb7f88dae6f8_1309x1414.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><p>Now that we&#8217;ve seen how CLI agents work in general, let&#8217;s take a closer look at one of the best examples, Claude Code.</p><h2>4. How Claude Code Works</h2><p>Claude Code has always been my personal choice for coding.  Let&#8217;s break down how Claude Code handles tasks step by step.</p><h4><strong>1. Agent Loop</strong></h4><p>Claude Code runs in a loop where it keeps calling tools until the job is done. Every task like reading, writing, or searching is done through a structured tool call.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uuvb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uuvb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 424w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 848w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 1272w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uuvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png" width="1185" height="291" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:291,&quot;width&quot;:1185,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24671,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.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_!uuvb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 424w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 848w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 1272w, https://substackcdn.com/image/fetch/$s_!uuvb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb059d016-0855-4af7-afac-8d23a42b2e4b_1185x291.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>2. Security Checks</strong></h4><p>Before running any command, Claude checks if it is safe. It uses smaller models like Haiku, to review shell commands and confirm they are not harmful. Once verified, it keeps a list of trusted commands for future use. This keeps your system protected from unwanted actions.</p><h4><strong>3. Scoped Edits</strong></h4><p>Claude works only inside the current project folder. It does not edit anything outside it, which makes the setup safe for local development.</p><h4><strong>4. Task Planning</strong></h4><p>Claude uses internal Todo tools to plan and track its work. It creates small subtasks, shows progress, and updates them in the terminal while it works.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8-Dp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8-Dp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 424w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 848w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 1272w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8-Dp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png" width="929" height="172" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:172,&quot;width&quot;:929,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22866,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0560afca-20af-43cd-ba37-c77d48e2e3b4_929x210.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_!8-Dp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 424w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 848w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 1272w, https://substackcdn.com/image/fetch/$s_!8-Dp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbc3a06a2-df64-48b5-a5c9-aca258f6916f_929x172.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>5. Sub Agents</strong></h4><p>When the job is complex, Claude creates small helper agents to handle parts of the task. Each one works in a small context and sends results back to the main process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LW8O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LW8O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 424w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 848w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 1272w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LW8O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png" width="1186" height="389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:389,&quot;width&quot;:1186,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37070,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b8a5654-09e4-4bf5-8e8b-82fa565deb63_1186x389.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_!LW8O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 424w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 848w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.png 1272w, https://substackcdn.com/image/fetch/$s_!LW8O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0856eac-fadf-4bd4-8256-a2358d6d1a2d_1186x389.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><strong>6. Prompt Rules</strong></h4><p>The system prompt keeps Claude Code clear and focused. It asks the model to stay concise, follow the existing code style, avoid random comments, and use tools smartly when needed.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VwjZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VwjZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 424w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 848w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 1272w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VwjZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png" width="1411" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:1411,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50314,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.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_!VwjZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 424w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 848w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 1272w, https://substackcdn.com/image/fetch/$s_!VwjZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55193462-1cd7-49b3-8750-500c22ad274a_1411x342.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>You can find the system prompts for many AI tools in this <a href="https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools">System Prompt GitHub Repo.</a></p><h4><strong>7. Context Handling</strong></h4><p>When the chat starts to reach its limit, Claude summarizes old parts automatically. It keeps only what matters so it can continue reasoning without losing track.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mRcQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mRcQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 424w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 848w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 1272w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mRcQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png" width="1175" height="201" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:1175,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30466,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.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_!mRcQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 424w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 848w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 1272w, https://substackcdn.com/image/fetch/$s_!mRcQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b7aba9d-8f47-4afb-96e5-4659b2414a61_1175x201.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>8. Web Tools</strong></h4><p>Claude can fetch and search the web when it needs extra information. It even uses smaller models for these tasks to save time and cost.</p><h4><strong>9. Built on the standard Anthropic API</strong></h4><p>All calls go through the same Anthropic API that any developer would use. </p><p>Some details in this section are based on a <a href="https://medium.com/@guillaumesabran/understanding-how-claude-code-works-13036595a8a7">Medium article that analyzed Claude Code&#8217;s internal workflow</a> and Anthropic&#8217;s public API behavior.</p><h2>5. An Overall Comparison of CLI agents</h2><p>Here&#8217;s a quick comparison of popular CLI coding agents. The table is based on insights from articles, community posts, and a few I tested locally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QOu6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QOu6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 424w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 848w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QOu6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png" width="1625" height="1216" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/71e02809-25df-418e-948b-0062d73197a0_1625x1216.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1216,&quot;width&quot;:1625,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:994098,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e8ddf8b-d134-45ed-b156-f9c35ca1e54d_1625x1216.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_!QOu6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 424w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 848w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.png 1272w, https://substackcdn.com/image/fetch/$s_!QOu6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F71e02809-25df-418e-948b-0062d73197a0_1625x1216.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>6. Choose your CLI Agent</h2><p>Here&#8217;s a quick guide to help you choose the right CLI agent based on your cost, privacy, and accuracy needs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TN0a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TN0a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 424w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 848w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TN0a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png" width="1456" height="1232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1232,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:683518,&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/174908270?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.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_!TN0a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 424w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 848w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.png 1272w, https://substackcdn.com/image/fetch/$s_!TN0a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd6a48b-12c4-4870-a6ac-83466965e7c6_3282x2778.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>Each tool suits a different kind of developer. Choose the one that fits your workflow.</p><h2>Conclusion</h2><p>We explored how CLI agents work and why they&#8217;re becoming a favorite among developers. From Claude Code to Goose, each offers its own balance of accuracy, privacy, and cost.</p><p>If you spend most of your time in the terminal, these tools are worth exploring. Everyone will find an agent that fits their workflow best.</p><p>If you&#8217;re already using one, I&#8217;d love to hear how it helps you code better.</p><p>Happy coding!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/cli-agents-explained-how-to-choose?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/cli-agents-explained-how-to-choose?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/cli-agents-explained-how-to-choose?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Apps SDK: Building Apps for ChatGPT]]></title><description><![CDATA[How to build Apps for ChatGPT using Apps SDK]]></description><link>https://www.devshorts.in/p/apps-sdk-building-apps-for-chatgpt</link><guid isPermaLink="false">https://www.devshorts.in/p/apps-sdk-building-apps-for-chatgpt</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 15 Oct 2025 14:05:05 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ad5fe2b2-c093-4489-91ea-e2507ddedce2_905x280.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>OpenAI recently hosted their <a href="https://openai.com/devday/">DevDay 2025</a> and announced a bunch of new tools. The highlights included Apps SDK, AgentKit, and Sora 2 in the API, and more. But the one that really caught my attention was the <a href="https://developers.openai.com/apps-sdk">Apps SDK</a>.</p><p>It&#8217;s not just another API or plugin system. It&#8217;s a framework to build apps that run inside ChatGPT.</p><p>These apps are mini tools with their own UI, powered by an MCP server. ChatGPT can call them directly, and their responses show up right in the chat.</p><p>If the App Store is a home for mobile apps, ChatGPT is becoming a home for AI apps. Apps meet people exactly when they need them. No switching tabs, no leaving the conversation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KgUg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KgUg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 424w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 848w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 1272w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KgUg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png" width="659" height="440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:440,&quot;width&quot;:659,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:126255,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/175689016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.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_!KgUg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 424w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 848w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 1272w, https://substackcdn.com/image/fetch/$s_!KgUg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05d5b4cd-55e1-4424-b254-54333f29c171_659x440.png 1456w" sizes="100vw" fetchpriority="high"></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 this post, I&#8217;m going to build an App using Apps SDK.</p><p>We&#8217;ll cover these topics,</p><ol><li><p>What is Apps SDK </p></li><li><p>Why Apps SDK </p></li><li><p>How to build an app for ChatGPT</p></li><li><p>Benefits of ChatGPT apps</p></li></ol><p>The app we&#8217;ll build is a simple API Tester. Like Postman, but inside ChatGPT. Enter an endpoint, hit send, and see the result right in the chat.</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. What is Apps SDK</h2><p>The Apps SDK is an Open Standard built on <a href="https://modelcontextprotocol.io/docs/getting-started/intro">Model Context Protocol</a>.</p><p>Apps SDK = MCP server + UI</p><p>It is used to build apps for ChatGPT. These apps are MCP server logic with a custom UI, all running within ChatGPT.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IrAY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IrAY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 424w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 848w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IrAY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif" width="905" height="280" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:280,&quot;width&quot;:905,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:127573,&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/175689016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.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_!IrAY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 424w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 848w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.gif 1272w, https://substackcdn.com/image/fetch/$s_!IrAY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F945ecb3a-9b52-402b-8b7f-5334a9849e44_905x280.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><p>Like any MCP server, you define your tool and run the server. But with Apps SDK there&#8217;s one extra step. You add a UI layer that users can see and interact with directly. This UI talks to ChatGPT through a simple bridge called <code>window.openai</code>.</p><h2>2. Why Apps SDK</h2><p>ChatGPT is great at conversation. But not everything can be done inside chat.</p><p>Need to edit a design? You switch to Figma. Want to organize your notes? You open Notion.</p><p>Apps SDK brings those tools right into ChatGPT.</p><p>We know MCP connects AI systems with external tools. Apps SDK takes it further. It combines MCP with UI, so the tools you connect to ChatGPT come with their own interface.</p><p>Your app runs inside the conversation, not in a separate tab. Everything happens where the conversation is.</p><h2>3. How to build an App using Apps SDK</h2><h4>Step 1:  Identify the use case</h4><p>Identify what your app should do.</p><blockquote><p>I&#8217;m building an API Tester App. A simple tool to test APIs, like Postman, but inside ChatGPT.</p></blockquote><p>ChatGPT can&#8217;t test APIs on its own. This app fills that gap.</p><h4>Step 2:  Choose an SDK</h4><p>Apps SDK works with both Python and TypeScript.</p><p><a href="https://github.com/modelcontextprotocol/python-sdk">The Python SDK</a> includes FastMCP for quick setup. If you&#8217;re already working with Node or React, go with <a href="https://github.com/modelcontextprotocol/typescript-sdk">TypeScript SDK</a> instead.</p><p>I&#8217;m using Python SDK for this API Tester App.</p><blockquote><p>The official <a href="https://github.com/openai/openai-apps-sdk-examples/tree/main">Apps SDK examples</a> include full sample apps built in both Python and Node. You can check them out to understand the complete setup and structure</p></blockquote><h4><strong>Step 3: Set up the project</strong></h4><p>Let us set up the project. The folder structure should look like this:</p><pre><code><code> API-Tester/
  &#9500;&#9472;&#9472; static/
  &#9474;   &#9500;&#9472;&#9472; api-tester.css
  &#9474;   &#9492;&#9472;&#9472; api-tester.js  
  &#9500;&#9472;&#9472; pyproject.toml
  &#9492;&#9472;&#9472; server.py</code></code></pre><p>Add dependencies in <code>pyproject.toml</code></p><pre><code><code>dependencies = [
      &#8220;fastmcp&gt;=0.1.0&#8221;,
      &#8220;httpx&gt;=0.27.0&#8221;,
      &#8220;uvicorn&gt;=0.30.0&#8221;,
      &#8220;starlette&gt;=0.37.0&#8221;
  ]</code></code></pre><p>Install them:</p><pre><code><code>pip install -e .  </code></code></pre><blockquote><p>The <code>server.py</code> file holds your MCP server tools.  The UI components (CSS and JavaScript) are in the <code>&#8220;static&#8221; </code>folder and get embedded inline by <code>&#8220;server.py&#8221;</code> when serving the widget to ChatGPT.</p></blockquote><h4>Understanding The App Flow</h4><p>Before we dive into code, here&#8217;s how Apps SDK works. Every app needs three things</p><ul><li><p>Register your tool </p></li><li><p>Handle tool execution </p></li><li><p>Register the UI </p></li></ul><p>Now let&#8217;s build each piece in server.py.</p><h4>Step 4: Build server.py</h4><h4>Register your tool</h4><pre><code><code>from mcp.server.fastmcp import FastMCP
import mcp.types as types

mcp = FastMCP(name=&#8221;api-tester&#8221;)

@mcp._mcp_server.list_tools()
async def _list_tools():
    return [
        types.Tool(
            name=&#8221;run_api_test&#8221;,
            description=&#8221;Test an API endpoint&#8221;,
            inputSchema={...},  # Define method, url parameters
            _meta={
                &#8220;openai/outputTemplate&#8221;: &#8220;ui://widget/api-tester.html&#8221;,
                &#8220;openai/widgetAccessible&#8221;: True,
            }
        )
    ]</code></code></pre><p>The <code>_meta</code> field tells ChatGPT which UI to render.</p><h4>Handle tool execution</h4><pre><code>import httpx

async def _call_tool_request(req: types.CallToolRequest):
    method = req.params.arguments.get(&#8221;method&#8221;)
    url = req.params.arguments.get(&#8221;url&#8221;)
    
    async with httpx.AsyncClient() as client:
        response = await client.request(method, url)
    
    return types.ServerResult(
        types.CallToolResult(
            content=[types.TextContent(type=&#8221;text&#8221;, text=f&#8221;Status: {response.status_code}&#8221;)],
            structuredContent={
                &#8220;status&#8221;: response.status_code,
                &#8220;headers&#8221;: dict(response.headers),
                &#8220;body&#8221;: response.text
            }
        )
    )

# Register the handler
mcp._mcp_server.request_handlers[types.CallToolRequest] = _call_tool_request</code></pre><p>The <code>structuredContent</code> is what your UI receives as <code>window.openai.toolOutput</code>.</p><h4>Register the UI</h4><pre><code><code>@mcp._mcp_server.list_resources()
async def _list_resources():
    return [types.Resource(uri=&#8221;ui://widget/api-tester.html&#8221;, mimeType=&#8221;text/html+skybridge&#8221;)]

async def _handle_read_resource(req: types.ReadResourceRequest):
    if req.params.uri == &#8220;ui://widget/api-tester.html&#8221;:
        html = &#8220;&#8221;&#8220;
        &lt;div id=&#8221;api-tester-root&#8221;&gt;&lt;/div&gt;
        &lt;style&gt;/* your CSS */&lt;/style&gt;
        &lt;script&gt;/* your JS */&lt;/script&gt;
        &#8220;&#8221;&#8220;
        return types.ServerResult(
            types.ReadResourceResult(
                contents=[types.TextResourceContents(
                    uri=&#8221;ui://widget/api-tester.html&#8221;,
                    mimeType=&#8221;text/html+skybridge&#8221;,
                    text=html
                )]
            )
        )

# Register the handler
mcp._mcp_server.request_handlers[types.ReadResourceRequest] = _handle_read_resource</code></code></pre><h4>Build the UI</h4><p>Your JavaScript receives data via <code>window.openai.toolOutput</code>. </p><pre><code><code>// Get the data
const toolOutput = window.openai?.toolOutput;

// Display results
if (toolOutput) {
    document.getElementById(&#8217;status&#8217;).textContent = toolOutput.status;
    document.getElementById(&#8217;body&#8217;).textContent = toolOutput.body;
}

// Listen for updates
window.addEventListener(&#8217;openai:set_globals&#8217;, () =&gt; {
    const data = window.openai?.toolOutput;
    // Update UI with new data
});</code></code></pre><h4>Step 5: Run the App locally</h4><pre><code><code>app = mcp.streamable_http_app()

if __name__ == &#8220;__main__&#8221;:
    uvicorn.run(app, host=&#8221;0.0.0.0&#8221;, port=8000)</code></code></pre><p>Run locally and expose with ngrok. You need HTTPS for ChatGPT to connect. Ngrok provides that temporarily. For permanent deployment, we&#8217;ll use Render, which is coming next. </p><pre><code><code>python server.py
ngrok http 8000  # Get HTTPS URL </code></code></pre><h4><strong>Step 6: Deploy to Render</strong></h4><ul><li><p>Go to <a href="https://render.com">Render</a> and create a new Web Service</p></li><li><p>Connect the GitHub repository</p></li><li><p>Set the build command: <code>pip install -e .</code></p></li><li><p>Set the start command: <code>python server.py</code></p></li><li><p>Click &#8220;Create Web Service&#8221;</p></li></ul><p>Once deployed, Render gives you an HTTPS URL like below.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6FFc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6FFc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 424w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 848w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 1272w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6FFc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png" width="382" height="221" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:221,&quot;width&quot;:382,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22391,&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/175689016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4dfaa5d-9082-4a4d-980f-19d38006b9d5_382x221.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_!6FFc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 424w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 848w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 1272w, https://substackcdn.com/image/fetch/$s_!6FFc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5914eaba-3695-491c-ada3-fdc93b6c2920_382x221.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Now it&#8217;s time to connect the API Tester app with ChatGPT. </p><h4>Step 7: Connect to ChatGPT</h4><ol><li><p>Enable Developer Mode in ChatGPT </p><p>Settings &#8594; Apps &amp; Connectors &#8594; Advanced Settings&#8594; Dev mode</p></li><li><p>Once Dev Mode is enabled, Create a new connector with your HTTPS URL</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TNRJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TNRJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 424w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 848w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 1272w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TNRJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png" width="541" height="786" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:786,&quot;width&quot;:541,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52955,&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/175689016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.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_!TNRJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 424w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 848w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.png 1272w, https://substackcdn.com/image/fetch/$s_!TNRJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80742b3c-ddd1-4eca-8aea-818e14f18a5f_541x786.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>Step 8: Test the App</h4><p>Once you create the connector, you can add the app in the chat and start using it. I was able to test the API Tester app successfully.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;cd10e545-d6f6-4066-b3a3-e5ecfb221720&quot;,&quot;duration&quot;:null}"></div><blockquote><p>We have just seen the code snippets. You can check the complete working code of this API Tester app in this <a href="https://github.com/devgotomarket/API-Tester">GitHub repository.</a> </p></blockquote><h2>4. Benefits of ChatGPT Apps</h2><p>What makes ChatGPT apps different? Here are the key benefits.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HJGi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HJGi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 424w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 848w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 1272w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HJGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png" width="2246" height="1522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1522,&quot;width&quot;:2246,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:331970,&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/175689016?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ee7683b-a030-4243-89e6-5884e26a7ffd_2502x2393.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_!HJGi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 424w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 848w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.png 1272w, https://substackcdn.com/image/fetch/$s_!HJGi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d7ea1ef-1890-436d-82cf-593c8f9bc9db_2246x1522.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>What&#8217;s next</h2><p>We discussed about Apps SDK, and we built an app for ChatGPT.</p><p>The API Tester app uses a form-based UI. You can actually build the UI you want. Check out the <a href="https://github.com/openai/openai-apps-sdk-examples">official examples</a>. They include maps, carousels, and video players. </p><p>Our app doesn&#8217;t have OAuth. But you can add it. we&#8217;ve already covered OAuth implementation for MCP servers in previous posts.</p><blockquote><p>OpenAI has announced they&#8217;ll start accepting app submissions later this year. They&#8217;ll also share details on how developers can monetize their apps. </p></blockquote><p>The app directory is coming. So, pick a real problem, build an app that solves it, and get ready to submit.</p><p>Apps SDK is still new. The best apps are yet to be built, and your app could be one of them.</p><p>Happy building!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/apps-sdk-building-apps-for-chatgpt?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/apps-sdk-building-apps-for-chatgpt?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/apps-sdk-building-apps-for-chatgpt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[AGENTS.md: One File for All Agents]]></title><description><![CDATA[AGENTs.md - one file, work across many agents]]></description><link>https://www.devshorts.in/p/agentsmd-one-file-for-all-agents</link><guid isPermaLink="false">https://www.devshorts.in/p/agentsmd-one-file-for-all-agents</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 08 Oct 2025 14:31:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u2mp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI Coding Agents are everywhere now. </p><p>Some live in the terminal, some work inside your IDE. Whatever the setup, every developer is using one today. </p><p><a href="https://github.com/openai/codex">Codex CLI</a>, <a href="https://github.com/anthropics/claude-code">Claude Code</a>, <a href="https://github.com/google-gemini/gemini-cli">Gemini CLI</a>, <a href="https://github.com/cline/cline">Cline</a>, <a href="https://cursor.com/">Cursor</a>, <a href="https://docs.github.com/en/enterprise-cloud@latest/copilot/concepts/agents/coding-agent/about-coding-agent">Copilot</a>. The list goes on. </p><p>If you&#8217;ve used any of these coding agents, you might know they work best when they have the right context and clear instructions.  The context and guidance come from their config files. </p><p>But each coding agent has its own config file. That creates a few problems when you switch between coding agents or work in teams that use different agents. </p><blockquote><p>The solution? A single file - <a href="https://agents.md/">AGENTS.md</a>.  An open standard that serves as a common config file for all coding agents.  </p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u2mp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u2mp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 424w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 848w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 1272w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u2mp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png" width="1402" height="941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:941,&quot;width&quot;:1402,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:739958,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.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_!u2mp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 424w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 848w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 1272w, https://substackcdn.com/image/fetch/$s_!u2mp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcd82b1f0-b8d9-4142-b6dc-2e982a64a6ac_1402x941.png 1456w" sizes="100vw" fetchpriority="high"></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>Before we dive in, here&#8217;s what we&#8217;ll cover in this post:</p><ol><li><p>What is AGENTS.md</p></li><li><p>Why AGENTS.md</p></li><li><p>What goes inside AGENTS.md</p></li><li><p>Coding Agents and their native config files</p></li><li><p>Bridging AGENTS.md with Coding Agents</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 AGENTS.md</h2><p>AGENTS.md is an open format, for guiding coding agents. A single place where AI coding agents can get the context and instructions, they need for your project.</p><blockquote><p>README.md is for developers, AGENTS.md is for coding agents.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5pz-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5pz-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 424w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 848w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 1272w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5pz-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif" width="510" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:510,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99317,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.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_!5pz-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 424w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 848w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.gif 1272w, https://substackcdn.com/image/fetch/$s_!5pz-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb30a1853-6f8b-4444-aa05-752ce5546e00_510x398.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><p>Most modern agents can already detect and read AGENTS.md automatically. </p><p>It is now used by more than <a href="https://github.com/search?q=path%3AAGENTS.md&amp;type=code">40K open-source projects</a> and supported by tools like Codex, Cursor, Gemini CLI, Factory, Amp, and many others.</p><h2>2. Why AGENTS.md</h2><h4>The Discussion</h4><p>Developers have already started asking for AGENTS.md support. </p><blockquote><p>In a <a href="https://github.com/anthropics/claude-code/issues/6235">GitHub discussion for Claude Code, user requested for AGENTS.md support</a>.  Similarly, Cline users raised a <a href="https://github.com/cline/cline/discussions/6162">GitHub issue asking for AGENTS.md support.</a>  Because several major tools had already adopted it.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cJyv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cJyv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 424w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 848w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 1272w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cJyv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png" width="936" height="131" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f365a72e-1144-47a1-8e32-54224f33790d_936x131.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:131,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:14131,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.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_!cJyv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 424w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 848w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 1272w, https://substackcdn.com/image/fetch/$s_!cJyv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff365a72e-1144-47a1-8e32-54224f33790d_936x131.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>The Reason</h4><p>Since every coding agent follows its own config file, it becomes difficult when you switch tools or work in a team using different agents.</p><h4>The Issue</h4><p>Here is what usually happens,</p><ol><li><p>When you switch to another coding agent, you need to create a new file for it.</p></li><li><p>If you clone a repo that already has a <code>.cursor/rules</code> file, you need to add a <code>CLAUDE.md</code> or another file for your own agent.</p></li><li><p>If you are working in a team, everyone ends up creating a different file for the same project.</p></li><li><p>You end up maintaining multiple files that all describe the same project.</p></li></ol><h4>The Solution</h4><p>That is why many coding agents have started adopting AGENTS.md. Instead of many files with different names, you maintain one common file that works across tools. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VFy6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VFy6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 424w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 848w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 1272w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VFy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif" width="1059" height="594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:1059,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:219987,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.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_!VFy6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 424w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 848w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.gif 1272w, https://substackcdn.com/image/fetch/$s_!VFy6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F966b9f5f-dacc-4204-81b8-264bfd206963_1059x594.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><h2>3. What Goes Inside AGENTS.md</h2><p>AGENTS.md isn't something completely new. It contains the same project knowledge that you'd put in any agent config file.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X9Oq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X9Oq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 424w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 848w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 1272w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X9Oq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png" width="3072" height="2050" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2050,&quot;width&quot;:3072,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:461060,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cf190e-f334-4653-9455-e3d70e20766a_3072x2556.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_!X9Oq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 424w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 848w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.png 1272w, https://substackcdn.com/image/fetch/$s_!X9Oq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F179189be-0ebb-4cff-862a-7370ecf1f638_3072x2050.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>What we saw above is a general structure. Along with common instructions, you can also include project-specific rules and details.</p><h4><strong>Project Rules the Agent Should Know</strong></h4><p>Your Agent might understand the code, but not the business rules behind it. Add them in AGENTS.md so the agent knows how your system should behave.</p><pre><code><code>## Domain Rules
- Admins can edit, not delete published content
- Orders auto-lock 2 hours after creation
- Free users get 3 exports per month
- Webhooks retry 3 times then dead letter</code></code></pre><h4>Architecture Decisions</h4><p>Add the architecture choices you&#8217;ve already made. So, your Agent knows what to follow and doesn&#8217;t suggest things you&#8217;ve already decided. </p><pre><code><code>## Architecture Decisions
- PostgreSQL: We need ACID for payments
- Redis: Session storage, not business data
- TypeScript: Catch bugs before users do
- Microservices: Deploy teams independently</code></code></pre><h4><strong>Team Rules the Agent Should Follow</strong></h4><p>Every team has its own way of working. The senior developers know it, but new members and your AI won&#8217;t. Add these rules in AGENTS.md so the agent follows the same team practices.</p><pre><code><code>## Team Conventions
- API errors include requestId for support
- Never show stack traces to users
- All forms validate on blur, not submit
- Cache config data, not user data</code></code></pre><h4><strong>API Details the Agent Should Know</strong></h4><p>Docs are helpful, but APIs often behave differently in real use. Add these notes in AGENTS.md so your agent understands how the APIs actually behave in your project.</p><pre><code><code>## API Integration Details
- Stripe: Retry anything, it's idempotent
- SendGrid: Rate limits hard, queue your emails
- S3: Takes time to be consistent, verify uploads
- Analytics: Fire and forget, don't block users</code></code></pre><h4><strong>Common Issues</strong></h4><p>Every project runs into the same issues more than once. Add the ones you&#8217;ve already fixed, so you don&#8217;t waste time fixing them again.</p><pre><code><code>## Common Issues
- Slow app? Check user file uploads
- Auth failing? Redis probably died
- Deploy stuck? Environment variables changed
- Memory leak? Background jobs not cleaning up</code></code></pre><h4>Start Small, Grow Smart</h4><p>Start simple and keep improving it as your project grows. Whenever your team or AI learns something new, add it here.</p><p>Over time, AGENTS.md becomes your project&#8217;s memory. New developer joins? They understand the project right away. Switch to a different coding agent? Still gets the same context and writes the same quality code.</p><h2>4. Coding Agents and their native config files</h2><p>It&#8217;s important to know each coding agent&#8217;s native config file. If an agent doesn&#8217;t support AGENTS.md yet, you&#8217;ll know where to link AGENTS.md so the agent can read it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qo3c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qo3c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 424w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 848w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 1272w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qo3c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png" width="1456" height="701" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:701,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:116919,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.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_!Qo3c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 424w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 848w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.png 1272w, https://substackcdn.com/image/fetch/$s_!Qo3c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5a67b7da-d6a7-4205-aff7-58fcf54f2cb3_1703x820.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><ul><li><p><a href="https://docs.claude.com/en/docs/claude-code/memory#claude-md-imports">Claude Code uses CLAUDE.md</a></p></li><li><p><a href="https://cursor.com/docs/context/rules">Cursor uses .cursor/rules/rules.mdc </a></p></li><li><p><a href="https://docs.windsurf.com/windsurf/cascade/memories#rules">Windsurf uses .windsurf/rules/rules.md</a></p></li><li><p><a href="https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions?tool=copilotcli#creating-repository-wide-custom-instructions">GitHub Copilot reads from .github/copilot-instructions.md</a></p></li><li><p><a href="https://docs.cline.bot/features/cline-rules">Cline uses .clinerules/rules.md</a></p></li><li><p><a href="https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/gemini-md.md">Gemini CLI uses Gemini.md</a></p></li></ul><h2>5. Bridging AGENTS.md with Coding Agents</h2><p>Some agents, such as Claude Code and Cline don&#8217;t officially support it yet. But they can still read AGENTS.md if it&#8217;s present in your project. I tested this and it works fine in most cases.</p><p>But for safer compatibility, let&#8217;s use symbolic linking. This method makes sure every agent reads from the same source without breaking its own setup.</p><h4>1. Using Symbolic Linking</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Ow-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Ow-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 424w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 848w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 1272w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Ow-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png" width="1456" height="699" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:699,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108068,&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/168038683?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.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_!3Ow-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 424w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 848w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.png 1272w, https://substackcdn.com/image/fetch/$s_!3Ow-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5c8a21e-480d-4a2d-a991-95a31758c3cc_1610x773.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>Make your coding agent read AGENTS.md directly by linking it like this.</p><pre><code><code># Claude Code
ln -s AGENTS.md CLAUDE.md

# Cline
ln -s AGENTS.md .clinerules/rules.md

# Cursor
ln -s AGENTS.md .cursor/rules/rules.md

# Windsurf
ln -s AGENTS.md .windsurf/rules/rules.md

# GitHub Copilot
ln -s AGENTS.md .github/copilot-instructions.md</code></code></pre><p>Your tools keep working. But now they all read from the same source.</p><h4>2. Using Import Inside Config Files</h4><p>You can also import AGENTS.md directly inside the agent&#8217;s config file. For example, if you are using Claude Code, add this in your CLAUDE.md file.</p><pre><code># In ./CLAUDE.md
@AGENTS.md</code></pre><p>This makes Claude Code read everything from AGENTS.md as its main project context. It keeps your setup simple and avoids repeating the same instructions across files.</p><h2>What&#8217;s Next</h2><p>Coding agents have started to follow a common standard.</p><p>Think of a future where every repo has an AGENTS.md file and every coding agent reads from the same source. </p><p>For now, we use symbolic linking or import methods to make AGENTS.md work with existing agents. It&#8217;s a simple bridge that keeps everything compatible. But this will evolve. </p><p>Soon, new agents may start looking for AGENTS.md by default. </p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/agentsmd-one-file-for-all-agents?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/agentsmd-one-file-for-all-agents?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/agentsmd-one-file-for-all-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Agent Payments Protocol (AP2) Explained]]></title><description><![CDATA[What is AP2, Why AP2, How AP2 works, AP2 in Action.]]></description><link>https://www.devshorts.in/p/agent-payments-protocol-ap2-explained</link><guid isPermaLink="false">https://www.devshorts.in/p/agent-payments-protocol-ap2-explained</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Tue, 30 Sep 2025 13:35:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IsOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Google has announced the <a href="https://cloud.google.com/blog/products/ai-machine-learning/announcing-agents-to-payments-ap2-protocol">Agent Payments Protocol (AP2)</a> recently. </p><p>We are in a protocol era for AI agents. </p><ul><li><p><a href="https://github.com/modelcontextprotocol/servers">Model Context Protocol :- MCP connects agents with tools and data.</a></p></li><li><p><a href="https://github.com/a2aproject/A2A">Agent to Agent Protocol :- A2A enables agent-to-agent communication.</a></p></li><li><p><a href="https://github.com/google-agentic-commerce/AP2">Agent Payments Protocol :- AP2 brings payments into agentic workflow.</a></p></li><li><p><a href="https://github.com/agentic-commerce-protocol/agentic-commerce-protocol">Agentic Commerce Protocol :- ACP is also for agent led payments.</a></p></li></ul><p>We&#8217;ve already explored <a href="https://devshorts.substack.com/p/the-complete-mcp-server-guide">MCP</a> and <a href="https://devshorts.substack.com/p/agent2agent-a2a-protocol-explained">A2A</a> in earlier posts. This post focuses on AP2.</p><p>We will cover</p><ol><li><p>What is AP2</p></li><li><p>Why AP2</p></li><li><p>How AP2 works</p></li><li><p>AP2 in Action</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 AP2</h2><p>AP2 is an open protocol. It provides a secure and verifiable way for agents to make payments on behalf of the user, with clear proof of user intent and authorization.</p><blockquote><p>In simple words, this protocol, is built for the secure agent-led-payments. AP2 works through mandates. Mandates are digital contracts that are signed, secure, and cannot be altered. </p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pr3j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pr3j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pr3j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg" width="991" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:991,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/174417534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pr3j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Pr3j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcefedda1-1314-4e04-8eff-fa5720a0f8d7_991x275.jpeg 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 AP2, there are three types of mandates:</p><ul><li><p>Intent mandate &#8211; captures the user&#8217;s intent (what they want to buy).</p></li><li><p>Cart mandate &#8211; captures the user-approved items, price, and shipping details.</p></li><li><p>Payment mandate &#8211; captures the user&#8217;s approval with payment details.</p></li></ul><p>AP2 fits into the current protocol stack. It works alongside A2A and MCP. So, you can add payments without rewriting your existing Tech Stack.</p><h2>2. Why AP2</h2><p>To understand why AP2 is needed, let&#8217;s walk through a real example.</p><p>User asks Agent- &#8220;Buy Apple AirPods Pro&#8221;. </p><p>Now let us compare how the agent handles this request without AP2 and with AP2.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j4of!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j4of!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 424w, https://substackcdn.com/image/fetch/$s_!j4of!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 848w, https://substackcdn.com/image/fetch/$s_!j4of!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 1272w, https://substackcdn.com/image/fetch/$s_!j4of!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j4of!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png" width="1269" height="536" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:536,&quot;width&quot;:1269,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60265,&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/174417534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.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_!j4of!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 424w, https://substackcdn.com/image/fetch/$s_!j4of!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 848w, https://substackcdn.com/image/fetch/$s_!j4of!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.png 1272w, https://substackcdn.com/image/fetch/$s_!j4of!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F198945ce-5a8a-4373-a00e-ee004d9db2df_1269x536.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>AP2 addresses the three key questions in any transaction,</p><ul><li><p>Did the user authorize the purchase?</p></li><li><p>Is the agent buying exactly what the user asked?</p></li><li><p>Can we track who is responsible if the transaction fails?</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_!bi8X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bi8X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bi8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg" width="1203" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:1203,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125948,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/174417534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bi8X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bi8X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb1a42a7-994c-4fb7-a1cf-c27dfc90db04_1203x735.jpeg 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. How does AP2 work</h2><p>As already mentioned, AP2 works based on Mandates.</p><ol><li><p>Intent mandate&#8211; The user tells the agent what they want to buy (for example, AirPods). The agent captures this as an intent mandate.</p></li><li><p>Cart mandate &#8211; The agent prepares the cart with items, price, and shipping. The user reviews the cart and signs it as a cart mandate. This locks the exact items and price.</p></li><li><p>Payment mandate &#8211; The agent then prepares the payment mandate. This is the user&#8217;s signed approval to pay the merchant.</p></li><li><p>Order confirmation &#8211; The agent sends both the cart and payment mandates to the merchant. The merchant verifies them and then confirms the order.</p></li><li><p>Credentials &#8211; At each step, signed credentials make sure requests are authentic and verifiable.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IsOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IsOR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IsOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg" width="1407" height="623" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:623,&quot;width&quot;:1407,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112604,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/174417534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IsOR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IsOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdf86718-0f67-4745-932a-b29d9c982dec_1407x623.jpeg 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>The process above is the normal AP2 flow when the user is present. AP2 also works when the user is not present.</p><p>For example, the user may allow the agent to buy tickets when the price drops below $100, even if the user is not there at that moment. </p><p>In that case, the agent gets a detailed Intent Mandate with specific conditions, signed by the user. The agent then creates the Cart Mandate when those conditions are met and completes the order transaction.</p></blockquote><h2>4. AP2 in Action</h2><p>Google has open-sourced sample code and scenarios to help developers try AP2 locally.</p><p>The <a href="https://github.com/google-agentic-commerce/AP2">AP2 repo</a> includes:</p><ul><li><p>Python and Android samples showing shopping and checkout flows.</p></li><li><p>An Agent Development Kit (ADK) setup to run the samples.</p></li><li><p>Ready-to-use scripts to start roles like merchant, payment processor, and shopping agents.</p></li></ul><blockquote><p>These samples use Gemini 2.5 Flash in the demos, but you can swap in any model.</p></blockquote><p>Now, let&#8217;s get it running.</p><h4>Step 1: Clone the repo</h4><pre><code>git clone https://github.com/google-agentic-commerce/AP2.git</code></pre><h4>Step 2: Install dependencies</h4><p>AP2 uses <code>uv</code> for Python packages.</p><pre><code><code>cd AP2/samples/python
uv sync</code></code></pre><h4>Step 3: Set your API key</h4><p>You need a <a href="https://aistudio.google.com/api-keys">Google AI Studio API key</a>.</p><p>Linux / Mac / Git Bash</p><pre><code><code>export GOOGLE_API_KEY=&#8221;your_api_key&#8221;
</code></code></pre><p>Windows CMD</p><pre><code><code>set GOOGLE_API_KEY=your_api_key</code></code></pre><h4>Step 4: Run the agents</h4><p>In different terminals, start each role.</p><pre><code><code>cd AP2/samples/python</code></code></pre><pre><code><code>uv run --package ap2-samples python -m roles.merchant_agent
uv run --package ap2-samples python -m roles.credentials_provider_agent
uv run --package ap2-samples python -m roles.merchant_payment_processor_agent
uv run --package ap2-samples adk web src/roles</code></code></pre><h4>Step 5: Try it in the browser</h4><p>Open <a href="http://localhost:8000/dev-ui">http://localhost:8000/dev-ui</a>.</p><p>Pick the shopping agent and give it a command, for example:</p><blockquote><p>&#8220;Buy Apple AirPods Pro under $200.&#8221;</p></blockquote><p>The agent:</p><ul><li><p>Captures user intent.</p></li><li><p>Builds a cart mandate.</p></li><li><p>Requests payment mandate.</p></li><li><p>Sends signed proofs to the merchant.</p></li><li><p>Merchant verifies and confirms the order.</p></li></ul><h4>Step 6: Hands-On Run</h4><p>In my test run, I ran the flow up to the cart mandate step. At that point, the agent asked whether to use a digital wallet. </p><p>If you want to try the full checkout, you can continue by connecting your own digital wallet and check how it works.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;1bee0564-f046-4e3c-ab4a-c6d7b114b3fb&quot;,&quot;duration&quot;:null}"></div><h2>Looking Ahead</h2><p>AP2 is still new, but it solves a real gap for agent-driven commerce. It makes payments safe, verifiable, and accountable. </p><p>For developers, this is the right time to experiment with AP2. Try the sample flows and see how it fits into your stack.</p><p>You might also want to check out another initiative called the <a href="https://www.agenticcommerce.dev/">Agentic Commerce Protocol (ACP)</a>, released more recently. It is also built for agent led payments. You can explore <a href="https://github.com/agentic-commerce-protocol/agentic-commerce-protocol">ACP GitHub repo</a> and <a href="https://stripe.com/blog/developing-an-open-standard-for-agentic-commerce">Stripe&#8217;s blog post</a> for early details.</p><p>I will cover more about this ACP protocol in a future post. For now, AP2 is a great starting point to get hands on with agentic commerce. </p><p>As more merchants, wallets, and banks adopt it, we can expect more agent-led transactions.</p><p>More AI posts are coming. Let us keep exploring!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/agent-payments-protocol-ap2-explained?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/agent-payments-protocol-ap2-explained?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/agent-payments-protocol-ap2-explained?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Essential GitHub Repositories for AI Engineers]]></title><description><![CDATA[A collection of GitHub repos for AI engineers]]></description><link>https://www.devshorts.in/p/essential-github-repositories-for</link><guid isPermaLink="false">https://www.devshorts.in/p/essential-github-repositories-for</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Tue, 23 Sep 2025 16:15:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ee025d0a-4844-419e-b967-36a8a599b975_729x433.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>GitHub has become the go-to place for learning and building with AI. Developers open source their work, share frameworks, and publish research code that others can use right away.</p><p>In this blog, I&#8217;ve collected must-know GitHub repos grouped by category. These include everything from LLM fundamentals to RAG, MCP, Agents, Agentic frameworks, and coding agents that can sharpen your AI development journey. These repos are building blocks for any AI engineer looking to learn and build. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OgZg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OgZg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 424w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 848w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 1272w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OgZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png" width="1011" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:1011,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:149746,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/173258212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cb020cb-c8b0-4042-8574-2af0d802699f_1011x518.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_!OgZg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 424w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 848w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 1272w, https://substackcdn.com/image/fetch/$s_!OgZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7814c0d-1ae8-4223-ab41-bf5c4d6134f2_1011x441.png 1456w" sizes="100vw" fetchpriority="high"></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="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. LLM Repos</h2><ul><li><p><a href="https://github.com/rasbt/LLMs-from-scratch">LLMs-from-scratch</a>: This repo shows how to build and train GPT-style models. It explains the process step by step with clear code.</p></li><li><p><a href="https://github.com/HandsOnLLM/Hands-On-Large-Language-Models">Hands-On-Large-Language-Models</a>: This repo has code for practical LLM tasks. It covers text classification, search, clustering, embeddings, and fine-tuning.</p></li><li><p><a href="https://github.com/mlabonne/llm-course">llm-course</a>: This repo has an LLM course. It includes roadmaps and Colab notebooks covering fundamentals, fine-tuning, quantization, and deployment.</p></li><li><p><a href="https://github.com/aishwaryanr/awesome-generative-ai-guide">awesome-generative-ai-guide</a>: This repo serves as a GenAI hub. It provides updates on research, interview prep, course material, and app-building guides.</p></li><li><p><a href="https://github.com/Hannibal046/Awesome-LLM">Awesome-LLM</a>: This repo collects papers and resources about LLMs. It also includes frameworks, tools, and benchmarks.</p></li><li><p><a href="https://github.com/karpathy/nanoGPT">nanoGPT</a>: This repo is by Andrej Karpathy. It gives a simple way to train and fine-tune medium-sized GPTs with clean code.</p></li><li><p><a href="https://github.com/SylphAI-Inc/LLM-engineer-handbook">LLM-engineer-handbook</a>: This repo has resources for AI engineers. It covers training, serving, fine-tuning, and running LLMs in production.</p></li><li><p><a href="https://github.com/ashishps1/learn-ai-engineering">learn-ai-engineering</a>: This repo is a resource for beginners. It teaches AI, LLMs, agents, prompts, and fine-tuning from scratch.</p></li></ul><h2>2. MCP Repos</h2><ul><li><p><a href="https://github.com/modelcontextprotocol">Model Context Protocol</a>: This repo has the base MCP implementation from Anthropic. It is the open standard to connect AI applications with external tools and data.</p></li><li><p><a href="https://github.com/punkpeye/awesome-mcp-servers">Awesome MCP Servers</a>: This repo has a curated list of MCP servers. These servers help you connect MCP clients with external tools.</p></li><li><p><a href="https://github.com/punkpeye/awesome-mcp-clients">Awesome MCP Clients</a>: This repo lists different MCP clients. You can explore them and see how they work with servers.</p></li><li><p><a href="https://github.com/mcp-use/mcp-use">mcp-use</a>: This repo provides a Python library called mcp-use. It connects any LLM with any MCP server.</p></li><li><p><a href="https://github.com/metorial/mcp-containers">MCP Containers</a>: This repo gives you containerized MCP servers. They are simple to run and deploy.</p></li><li><p><a href="https://github.com/idosal/mcp-ui">mcp-ui</a>: This repo has UI components for MCP. Servers can serve them, and clients can render them for interactive use.</p></li><li><p><a href="https://github.com/mark3labs/mcphost">MCPHost</a>: This repo provides a CLI tool called MCPHost. It lets you run MCP servers and connect models like Claude, OpenAI, Gemini, and Ollama with external tools.</p></li></ul><h2>3. Agents Repos</h2><ul><li><p><a href="https://github.com/microsoft/ai-agents-for-beginners">AI Agents for Beginners</a>: This repo has lessons with code examples. It helps you get started with building AI agents.</p></li><li><p><a href="https://github.com/NirDiamant/GenAI_Agents">GenAI Agents</a>: This repo provides implementations of AI agents. It covers basics, LangGraph workflows, multi-agent systems, and advanced applications.</p></li><li><p><a href="https://github.com/e2b-dev/awesome-ai-agents">Awesome AI Agents</a>: This repo offers a curated list of AI agents. It includes projects across different categories and industries.</p></li><li><p><a href="https://github.com/dair-ai/Prompt-Engineering-Guide">Prompt Engineering Guide</a>: This repo has guides, papers, and notebooks. It focuses on prompt engineering techniques with large language models.</p></li><li><p><a href="https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools">System Prompts and Models of AI Tools</a>: This repo exposes system prompts and tools used by popular platforms. It covers Cursor, Claude Code, Lovable, and others.</p></li><li><p><a href="https://github.com/ashishpatel26/500-AI-Agents-Projects">500 AI Agents Projects</a>: This repo contains over 500 AI agent projects. It has examples from healthcare, finance, education, retail, and more.</p></li><li><p><a href="https://github.com/NirDiamant/agents-towards-production">Agents Towards Production</a>: This repo has step-by-step tutorials. It shows how to build GenAI agents that are ready for production.</p></li><li><p><a href="https://github.com/Arindam200/awesome-ai-apps">Awesome AI Apps</a>: This repo includes tutorials and examples. It shows how to build LLM-powered apps from chatbots to advanced agents.</p></li><li><p><a href="https://github.com/break-into-data/ai-engineer-toolkit">AI Engineer Toolkit</a>: This repo gives you projects and resources. It helps build production-grade AI apps with popular frameworks and tools.</p></li></ul><h2>4. Coding Agents Repos</h2><ul><li><p><a href="https://github.com/anthropics/claude-code">Claude Code</a>: This is Anthropic&#8217;s official repo. It is a popular coding agent for terminal-based AI assistance.</p></li><li><p><a href="https://github.com/openai/codex">OpenAI Codex</a>: This repo is OpenAI&#8217;s coding agent. It runs locally in your terminal and works as an alternative to cloud-based coding assistants.</p></li><li><p><a href="https://github.com/google-gemini/gemini-cli">Gemini CLI</a>: This repo is Google&#8217;s command-line tool. It brings Gemini AI into your terminal for code analysis and automation.</p></li><li><p><a href="https://github.com/FoundationAgents/OpenManus">OpenManus</a>: This is an open-source coding agent. Developers use it when they want full control without vendor lock-in.</p></li><li><p><a href="https://github.com/block/goose">Goose</a>: This repo is Block&#8217;s coding agent. It is capable of automating complex development tasks from start to finish.</p></li><li><p><a href="https://github.com/sst/opencode">opencode</a>: An AI coding agent built for the terminal. It is open source and works with any provider or model via a simple client interface.</p></li><li><p><a href="https://github.com/charmbracelet/crush">Crush</a>: This repo is Charm&#8217;s coding agent. Developers like it for its clean interface and smooth integration with local tools.</p></li><li><p><a href="https://github.com/cline/cline">Cline</a>: This is a VS Code extension. It works as an autonomous coding agent that creates files, runs commands, and handles complex workflows.</p></li><li><p><a href="https://github.com/antinomyhq/forge">Forge</a>: This repo is an AI pair programming tool. It supports more than 300 models and allows multi-provider flexibility.</p></li><li><p><a href="https://github.com/langchain-ai/open_deep_research">Open Deep Research</a>: This repo is from LangChain. It is an open-source research agent. It works across many model providers, search tools, and MCP servers.</p></li><li><p><a href="https://github.com/voideditor/void">Void</a>: It is an open-source coding editor. It is a free alternative to Cursor with checkpoint visualization.</p></li><li><p><a href="https://github.com/PatrickJS/awesome-cursorrules">Awesome Cursor Rules</a>: This repo is a collection of config files. Cursor users rely on them to customize their editor experience.</p></li><li><p><a href="https://github.com/hesreallyhim/awesome-claude-code">Awesome Claude Code</a>: It is community curated. It has Claude Code workflows and commands that improve productivity.</p></li></ul><h2>5. RAG Repos</h2><ul><li><p><a href="https://github.com/NirDiamant/RAG_Techniques">RAG Techniques</a>: It covers different advanced methods that boost retrieval and generation.</p></li><li><p><a href="https://github.com/langchain-ai/rag-from-scratch">RAG From Scratch</a>: This repo shows how to build RAG step by step with clear notebooks.</p></li><li><p><a href="https://github.com/HKUDS/RAG-Anything">RAG Anything</a>: It is an All-in-One RAG Framework. You get a flexible framework packed with tools.</p></li><li><p><a href="https://github.com/microsoft/rag-time">RAG Time</a>: Microsoft designed this as a 5-week Learning Journey to Mastering RAG.</p></li><li><p><a href="https://github.com/RUC-NLPIR/FlashRAG">FlashRAG</a>: The toolkit includes datasets, algorithms, and a GUI for fast RAG research.</p></li></ul><h2>6. LLM Framework Repos</h2><ul><li><p><a href="https://github.com/langchain-ai/langchain">LangChain</a>: A popular framework repo for building with LLMs. It supports agents, RAG, apps, memory, and many integrations.</p></li><li><p><a href="https://github.com/jerryjliu/llama_index">LlamaIndex</a>: Another popular framework repo for working with LLMs. It helps build agents, RAG systems, and LLM applications.</p></li><li><p><a href="https://github.com/deepset-ai/haystack">Haystack</a>: It is an AI orchestration framework to build customizable, production-ready LLM applications.</p></li><li><p><a href="https://github.com/ollama/ollama">Ollama</a>: This is a framework to run open-source LLMs locally on your machine.</p></li><li><p><a href="https://github.com/ggml-org/llama.cpp">llama.cpp</a>: This repo enables running LLMs locally using C and C++. It makes inference faster and lighter, even on modest hardware.</p></li><li><p><a href="https://github.com/unslothai/unsloth">Unsloth</a>: An open-source framework for LLM fine-tuning and reinforcement learning. It makes training faster and more efficient.</p></li><li><p><a href="https://github.com/microsoft/guidance">Guidance</a>: A guidance language for controlling large language models.</p></li><li><p><a href="https://github.com/stanfordnlp/dspy">DSPy</a>: An open-source Python framework. It helps optimize prompts and modules automatically.</p></li><li><p><a href="https://github.com/huggingface/transformers">Transformers</a>: It is the core library for pretrained models with APIs for training, fine tuning, and deployment.</p></li></ul><h2>7. Agentic Framework Repos</h2><ul><li><p><a href="https://github.com/langchain-ai/langgraph">LangGraph</a>: An orchestration framework for building, managing, and deploying long-running, stateful agents.</p></li><li><p><a href="https://github.com/openai/openai-agents-python">OpenAI Agent SDK</a>: A framework from OpenAI. It supports building multi-agent workflows.</p></li><li><p><a href="https://github.com/microsoft/autogen">AutoGen</a>: This is Microsoft&#8217;s agent framework. It helps create multi-agent AI applications.</p></li><li><p><a href="https://github.com/huggingface/smolagents">SmolAgents</a>: A lightweight framework from Hugging Face. It lets you build and run agents with minimal setup.</p></li><li><p><a href="https://github.com/joaomdmoura/crewai">CrewAI</a>: A framework for orchestrating AI agents. It is fast and flexible for building multi-agent workflows.</p></li></ul><h2>Conclusion</h2><p>This blog highlights key GitHub repos every AI engineer should know. The list includes LLMs, RAG, MCP, agents, frameworks, and coding agents. </p><p>Each repo offers a chance to learn or build something useful. Some help you start small, while others let you scale into real apps. </p><p>Bookmark this list and refer back to it as you progress in your AI journey.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/essential-github-repositories-for?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/essential-github-repositories-for?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/essential-github-repositories-for?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[The Complete MCP Server Guide]]></title><description><![CDATA[Build-> Dockerize -> Deploy-> Connect with LLMs, Agents]]></description><link>https://www.devshorts.in/p/the-complete-mcp-server-guide</link><guid isPermaLink="false">https://www.devshorts.in/p/the-complete-mcp-server-guide</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Tue, 16 Sep 2025 16:03:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/4abfe1f3-a89c-4537-b1f2-85dc6e266ab2_962x543.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://modelcontextprotocol.io/docs/getting-started/intro">Model Context Protocol (MCP)</a> has matured into a strong ecosystem. MCP servers are now common in tech stacks. They connect LLMs, AI agents with external systems, data sources, and APIs without custom integrations.</p><p>In my earlier posts, I covered MCP topics from the basics to OAuth. Here are some of those articles.</p><ul><li><p><a href="https://www.devshorts.in/p/how-to-build-your-own-mcp-server">How to build your own MCP Server?</a></p></li><li><p><a href="https://www.devshorts.in/p/how-to-host-your-mcp-server">How to host your MCP Server?</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-implement-oauth-for-mcp-server">How to implement OAuth for MCP Server</a></p></li><li><p><a href="https://devshorts.substack.com/p/ten-must-know-mcp-servers-for-every">Ten Must-Know MCP Servers</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-build-an-mcp-client">How to build an MCP Client</a></p></li></ul><p>This time we will see the complete workflow. We will build the MCP Server, dockerize and deploy it, and finally connect with LLMs and Agents.</p><p>This blog covers,</p><ol><li><p>Build MCP Server</p></li><li><p>Containerize using Docker and Podman</p></li><li><p>Deploy with Render and Railway</p></li><li><p>Docker Deployment Vs Direct Deployment</p></li><li><p>Test with MCP Inspector</p></li><li><p>Connect MCP Server with LLMs, Agents</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. Build MCP Server</h2><p>We will start by building a simple MCP Server with the <a href="https://gofastmcp.com/servers/server">FastMCP</a> framework. An MCP Server has three core features. They are,</p><ol><li><p>Tools</p></li><li><p>Prompts</p></li><li><p>Resources</p></li></ol><p>"<a href="https://modelcontextprotocol.io/docs/learn/server-concepts#tools">Tools</a>"<code> </code>are functions that the LLM can call to perform an action. <code>"</code><a href="https://modelcontextprotocol.io/docs/learn/server-concepts#prompts">Prompts</a><code>"</code> and <code>"</code><a href="https://modelcontextprotocol.io/docs/learn/server-concepts#resources">Resources</a><code>"</code> serve different purposes. In our example we will focus only on tools.</p><p>Our server has a single tool called <code>"web_extraction"</code>. It takes a URL as input and returns the page content. Of course, an MCP server can have multiple tools, each designed for different tasks.</p><p>Here&#8217;s the code for the Web Extraction MCP Server. </p><pre><code>from fastmcp import fastmcp
import requests
from bs4 import BeautifulSoup

mcp = fastmcp("Web Extraction MCP Server")

@mcp.tool
def web_extraction(url: str) -&gt; str:
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "html.parser")
    return soup.get_text(separator='\n')

if __name__ == "__main__":
    mcp.run(transport="http", host="0.0.0.0", port="8000")</code></pre><p>The full source code for the Web Extraction MCP server, including the <code>pyproject.toml</code> file, is available in this <a href="https://github.com/Sridevi17j/web-extractor-mcp-server">GitHub repo</a>.</p><blockquote><p>You don&#8217;t always need to build an MCP server from scratch. Many servers are already available in the <a href="https://github.com/modelcontextprotocol/servers">MCP registry</a> for common tools and use cases. If you find one that fits your needs, you can simply change the server code from STDIO to a streamable HTTP server by using <code>mcp.run(transport="http")</code>. Then containerize it and deploy for real time use.</p></blockquote><h2>2. Containerize using Docker and Podman</h2><p>Now let us containerize our MCP server. We will cover both Docker and Podman approaches for containerization. </p><p>Containerization bundles the app with everything it needs to run. This fixes the "it works on my machine" problem. With this approach, MCP server will run the same across local development, staging, and production environments.</p><h4>Using Docker</h4><h4>Step 1. Create the Dockerfile</h4><p>First, we need to create a Dockerfile that defines our container environment:</p><pre><code>FROM python:3.11-slim

# Set working directory
WORKDIR /app

# Install system dependencies
RUN apt-get update &amp;&amp; apt-get install -y \
    gcc \
    &amp;&amp; rm -rf /var/lib/apt/lists/*

# Copy requirements files
COPY pyproject.toml ./

# Install Python dependencies
RUN pip install --no-cache-dir -e .

# Copy application code
COPY server.py ./

# Expose the port the app runs on
EXPOSE 8000

# Create a non-root user for security
RUN useradd --create-home --shell /bin/bash app \
    &amp;&amp; chown -R app:app /app
USER app

# Run the application
CMD ["python", "server.py"]</code></pre><h4>Step 2. Build the Docker image from the Dockerfile</h4><pre><code>docker build -t web-extractor-mcp-server .</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fZ67!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fZ67!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 424w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 848w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 1272w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fZ67!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png" width="1151" height="719" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:719,&quot;width&quot;:1151,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103801,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.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_!fZ67!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 424w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 848w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.png 1272w, https://substackcdn.com/image/fetch/$s_!fZ67!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff8d52ff-2ec9-490a-b694-3b824d895670_1151x719.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>Step 3. Tag the image for the registry</h4><pre><code>docker tag web-extractor-mcp-server your-dockerhub-username/web-extractor-mcp-server:latest</code></pre><h4>Step 4. Authenticate with Docker Hub</h4><pre><code>docker login</code></pre><h4>Step 5. Push the image to Docker Hub</h4><pre><code>docker push your-dockerhub-username/web-extractor-mcp-server:latest</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GBsp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GBsp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 424w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 848w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 1272w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GBsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png" width="1126" height="300" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:300,&quot;width&quot;:1126,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30745,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.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_!GBsp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 424w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 848w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.png 1272w, https://substackcdn.com/image/fetch/$s_!GBsp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44f9bbe3-837c-44e7-93b2-0ee6432e3dd9_1126x300.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>Using Podman</h4><p>We can also containerize using Podman. It is a container engine that runs without a background daemon. It supports rootless containers, offering better security by default. </p><h4>Step 1. Build the image</h4><p>On some systems, Podman requires <code>sudo</code> unless your user is set up for rootless containers. In my case, the working command was.</p><pre><code>sudo podman build -t web-extraction-mcp .</code></pre><h4>Step 2. Verify image was created</h4><pre><code>podman images</code></pre><h4>Step 3. Tag for registry </h4><p>Podman supports multiple registries including Docker Hub and GitHub Container Registry.</p><pre><code>sudo podman tag web-extraction-mcp:latest your-dockerhub-username/web-extraction-mcp:latest</code></pre><h4>Step 4. Authenticate with the registry</h4><pre><code>podman login docker.io</code></pre><h4>Step 5. Push the image to the registry</h4><pre><code> sudo podman push your-dockerhub-username/web-extraction-mcp:latest</code></pre><p>With Docker images ready, we can now deploy them to various platforms.</p><h2>3. Deploy with Render</h2><p>Let's start with Render first.</p><p>Connect the Docker image and deploy as a web service through <a href="https://render.com/">Render's dashboard.</a> The platform will pull the image and handle the deployment process.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z0mX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z0mX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 424w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 848w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 1272w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z0mX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png" width="1456" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:35310,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.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_!z0mX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 424w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 848w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.png 1272w, https://substackcdn.com/image/fetch/$s_!z0mX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a7d738-6a82-4949-b8de-7df147a58960_1575x433.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ogqh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ogqh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 424w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 848w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 1272w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ogqh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png" width="907" height="317" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:317,&quot;width&quot;:907,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61987,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.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_!ogqh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 424w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 848w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.png 1272w, https://substackcdn.com/image/fetch/$s_!ogqh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3082d23a-e569-4f25-bf2c-2fe85cafa4e6_907x317.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>Deploy with Railway</h2><p><a href="https://railway.com/">Railway</a> works much like Render. Connect the Docker image and Railway will handle the deployment process automatically.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aCRp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aCRp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 424w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 848w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 1272w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aCRp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png" width="1456" height="389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f686df33-877a-4620-8d2b-72c2619c7305_1579x422.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;:31721,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.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_!aCRp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 424w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 848w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.png 1272w, https://substackcdn.com/image/fetch/$s_!aCRp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff686df33-877a-4620-8d2b-72c2619c7305_1579x422.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>Now that our MCP server is deployed, before connecting it with LLMs and Agents, let&#8217;s look at why Docker deployment is better than direct deployment</p><h2>4. Direct Deployment Vs Docker Deployment</h2><p>Direct deployment can fail when the local and server environments don&#8217;t match. Docker solves this by packaging everything, so the MCP server runs the same everywhere.</p><p>Here&#8217;s a quick comparison between Direct deployment and Docker deployment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FNj9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FNj9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 424w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 848w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 1272w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FNj9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png" width="811" height="499" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:499,&quot;width&quot;:811,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88902,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.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_!FNj9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 424w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 848w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.png 1272w, https://substackcdn.com/image/fetch/$s_!FNj9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8cf3e877-6352-4f26-9e0b-8b4fa19b64d2_811x499.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>5. Test with MCP Inspector</h2><p><a href="https://github.com/modelcontextprotocol/inspector">MCP Inspector</a> is the standard tool for testing and debugging MCP servers. It provides a user interface to interact with the server's tools and verify functionality.</p><ol><li><p>Run <code>npx @modelcontextprotocol/inspector</code></p></li><li><p>Open MCP Inspector.</p></li><li><p>Enter MCP Server deployment URL with /mcp at the end.</p></li><li><p>Click "Connect" to establish the connection.</p></li><li><p>Once connected, we can see the list of tools our MCP Server provides.</p></li></ol><p>In our case, after we connect with our deployment url, our <code>web_extraction</code> tool shows up in the list. This proves our deployed MCP server is working properly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yLoB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yLoB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 424w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 848w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 1272w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yLoB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png" width="1456" height="702" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:702,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83137,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.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_!yLoB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 424w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 848w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.png 1272w, https://substackcdn.com/image/fetch/$s_!yLoB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf8373d3-796a-4f65-9b6a-af7d99f7f6f9_1907x920.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 class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/the-complete-mcp-server-guide?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/the-complete-mcp-server-guide?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>6. Connect MCP Server with LLMs, Agents</h2><p>MCP Servers become really useful when you connect them with LLM-powered apps and agents. In this section, we will see how to connect them with LLMs Agents, and code editors.</p><h4>6.1 Connect MCP Server with Anthropic API</h4><p>To connect with an MCP server you normally need an MCP client, but some providers now let their LLMs talk to MCP servers directly through their APIs. </p><p>Here&#8217;s an example of connecting an MCP server with the Anthropic API. You can see <a href="https://docs.anthropic.com/en/docs/agents-and-tools/mcp-connector">Anthropic&#8217;s docs</a> for more details</p><pre><code>import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=1000,
    messages=[{
        "role": "user",
        "content": "What tools do you have available?"
    }],
    mcp_servers=[{
        "type": "url",
        "url": "https://mcp.example.com/sse",
        "name": "example-mcp",
        "authorization_token": "YOUR_TOKEN"
    }],
    betas=["mcp-client-2025-04-04"]
)</code></pre><h4>6.2 Connect MCP Server with OpenAI Agent</h4><p>OpenAI&#8217;s Agent supports MCP servers. The table below shows the different MCP integration options supported by the OpenAI Agent Python SDK. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BP9o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BP9o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 424w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 848w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 1272w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BP9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png" width="885" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:885,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:92441,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.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_!BP9o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 424w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 848w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.png 1272w, https://substackcdn.com/image/fetch/$s_!BP9o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b3c8ff5-ec46-4c9f-99e7-8acebef263e7_885x590.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>You can read more about these options in the <a href="https://openai.github.io/openai-agents-python/mcp/">OpenAI MCP docs.</a></p><p>For example, here&#8217;s how an OpenAI Agent connects with a Streamable HTTP MCP server.</p><pre><code>import asyncio
import os

from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
from agents.model_settings import ModelSettings

async def main() -&gt; None:
    token = os.environ["MCP_SERVER_TOKEN"]
    async with MCPServerStreamableHttp(
        name="Streamable HTTP Python Server",
        params={
            "url": "http://localhost:8000/mcp", # URL of the MCP server
            "headers": {"Authorization": f"Bearer {token}"},
            "timeout": 10,
        },
        cache_tools_list=True,
        max_retry_attempts=3,
    ) as server:
        agent = Agent(
            name="Assistant",
            instructions="Use the MCP tools to answer the questions.",
            mcp_servers=[server],
            model_settings=ModelSettings(tool_choice="required"),
        )

        result = await Runner.run(agent, "Add 7 and 22.")
        print(result.final_output)

asyncio.run(main())
   </code></pre><h4>6.3 Connect MCP Server with Claude Code</h4><p>We can also add MCP Server with <a href="https://docs.anthropic.com/en/docs/claude-code/mcp">Claude Code</a>.</p><pre><code><code>claude mcp add --transport http web-extractor-mcp https://web-extractor-mcp-server-1.onrender.com </code></code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zq20!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zq20!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 424w, https://substackcdn.com/image/fetch/$s_!zq20!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 848w, https://substackcdn.com/image/fetch/$s_!zq20!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 1272w, https://substackcdn.com/image/fetch/$s_!zq20!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zq20!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png" width="1151" height="99" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:99,&quot;width&quot;:1151,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26640,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fadd9478a-ecc2-4cee-903a-cabe4bcf2de9_1151x99.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_!zq20!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 424w, https://substackcdn.com/image/fetch/$s_!zq20!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 848w, https://substackcdn.com/image/fetch/$s_!zq20!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 1272w, https://substackcdn.com/image/fetch/$s_!zq20!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16c7b805-dd46-4095-8a13-4e34d7ee9691_1151x99.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Running this command connects the MCP server to Claude Code.</p><h4>6.4 Connect MCP Server with Code Editors</h4><ol><li><p>Cursor Code Editor provides three ways to connect with MCP servers, so your tools can be accessed directly while coding. </p><ul><li><p><a href="https://docs.cursor.com/en/context/mcp#one-click-installation">Cursor-MCP one-click installation</a></p></li><li><p><a href="https://docs.cursor.com/en/context/mcp#using-mcp-json">Using mcp.json</a></p></li><li><p><a href="https://docs.cursor.com/en/context/mcp#using-the-extension-api">Using the Extension API</a></p></li></ul></li><li><p>VS Code also provides multiple options to add MCP servers, including workspace-level, user-level, and dev container configurations:</p><ul><li><p><a href="https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server">VS Code &#8211; How to add an MCP server</a></p></li></ul></li><li><p>Windsurf supports MCP through <a href="https://docs.windsurf.com/windsurf/cascade/mcp">Cascade</a>, so you can plug in your servers and use their tools directly in the editor.</p></li><li><p>Zed also has <a href="https://zed.dev/docs/ai/mcp">MCP integration</a>, letting you add servers in its config and access MCP tools while coding.</p></li><li><p>LangChain provides <a href="https://github.com/langchain-ai/langchain-mcp-adapters">MCP adapters</a>, allowing you to use MCP servers inside your workflows and agents.</p></li><li><p>LlamaIndex supports <a href="https://developers.llamaindex.ai/python/framework/module_guides/mcp/llamaindex_mcp/">MCP</a>, so you can use MCP servers as tools in your pipelines and agents.</p></li></ol><p>Some websites like <a href="https://mcpservers.org/remote-mcp-servers">MCP Server Org</a> provide one-click MCP Server installation options for VS Code and Cursor. It makes setup faster but ensure the legitimacy of the site before installing. Only add MCP servers from trusted publishers and review their configuration carefully.</p><h4>6.5. Connect Any LLM with Any MCP</h4><p><a href="https://github.com/mcp-use/mcp-use">mcp-use</a> is an open-source toolkit that connects any LLM to any MCP server, so you can build agents with tool access without relying on closed clients.</p><p><a href="https://github.com/mark3labs/mcphost">MCPHost</a> is a CLI host application that connects LLMs with MCP servers. It supports multiple providers like Claude, OpenAI, Gemini, and Ollama.</p><h4>6.6 Connect MCP Server with ChatGPT</h4><p>OpenAI recently added <a href="https://platform.openai.com/docs/mcp">support for MCP Server in ChatGPT</a>.  This means you can integrate your own custom MCP servers directly into ChatGPT and use their tools inside conversations.</p><p>To set it up, enable Developer Mode under Advanced Settings. Then create a Connector. From there, you can fill in the details of your MCP server (name, description, and URL).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X6Cp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X6Cp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 424w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 848w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 1272w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X6Cp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png" width="495" height="718" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5700065b-ce84-475d-9e42-9af066ff3744_495x718.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:718,&quot;width&quot;:495,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46887,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.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_!X6Cp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 424w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 848w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.png 1272w, https://substackcdn.com/image/fetch/$s_!X6Cp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5700065b-ce84-475d-9e42-9af066ff3744_495x718.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>6.7 Connect MCP Server with Claude Desktop </h4><p>We can connect MCP Server with Claude Desktop in two ways:</p><p>Through the UI (paid users only)</p><ul><li><p>Open Claude Desktop Settings &#8594; Connectors &#8594; Add Custom Connector.</p></li><li><p>Enter MCP server&#8217;s deployment URL and save the configuration.</p></li></ul><p>Through <code>claude_desktop_config.json</code> (all users)</p><ul><li><p>Open the configuration file: <code>claude_desktop_config.json</code>.</p></li><li><p>Add a new entry for MCP server with the deployment URL.</p></li></ul><p>Let us now try connecting our Web Extraction MCP Server with Claude Desktop. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!moza!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!moza!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 424w, https://substackcdn.com/image/fetch/$s_!moza!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 848w, https://substackcdn.com/image/fetch/$s_!moza!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 1272w, https://substackcdn.com/image/fetch/$s_!moza!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!moza!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png" width="537" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:537,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55856,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.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_!moza!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 424w, https://substackcdn.com/image/fetch/$s_!moza!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 848w, https://substackcdn.com/image/fetch/$s_!moza!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.png 1272w, https://substackcdn.com/image/fetch/$s_!moza!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e198491-9032-4e0c-af40-5e0f2734d418_537x457.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>Once connected, our web extraction tool is available directly within Claude Desktop. We can now ask Claude to extract content from any webpage, and it will use MCP server&#8217;s tool to perform the task.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NNPM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NNPM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 424w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 848w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 1272w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NNPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png" width="803" height="780" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:780,&quot;width&quot;:803,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:98407,&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/172474183?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.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_!NNPM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 424w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 848w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.png 1272w, https://substackcdn.com/image/fetch/$s_!NNPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F661b9aaa-5171-4d61-afaf-20c348e5bdd2_803x780.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>In this guide, we explored the full journey of MCP servers. We built a simple MCP server, then containerized, deployed, and connected it with LLMs, agents, and editors. </p><p>MCP opens the door to building powerful agents with tool access without the friction of custom integrations. </p><p>Give MCP servers a try, and happy learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/the-complete-mcp-server-guide?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/the-complete-mcp-server-guide?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/the-complete-mcp-server-guide?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[ChatGPT Agent Explained]]></title><description><![CDATA[All About ChatGPT Agent]]></description><link>https://www.devshorts.in/p/chatgpt-agent-explained</link><guid isPermaLink="false">https://www.devshorts.in/p/chatgpt-agent-explained</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Tue, 02 Sep 2025 17:10:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5be20111-beda-48f5-ae3e-e50a7367b305_701x561.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI agents are everywhere now. They are not just chatbots anymore. They are autonomous systems. They can reason, plan, and execute tasks without constant human oversight. Developers have started integrating them into real workflows. </p><p>I have written about agents before. Here are my blogs on them.</p><p><a href="https://devshorts.substack.com/p/how-to-build-a-full-stack-application">How to build a Full Stack Application using AI Agents</a></p><p><a href="https://devshorts.substack.com/p/what-are-ai-agents-and-must-try-agents">What are AI Agents and Must-Try Agents for Every Developer</a></p><p>Recently, OpenAI has shipped <a href="https://openai.com/index/introducing-chatgpt-agent/">ChatGPT Agent</a>.  This can now do your work using its own computer. It can handle complex tasks from start to finish.</p><p>In this blog, we will cover ChatGPT Agent from features to architecture. Here is the outline.</p><ol><li><p>Browser Agent - ChatGPT Agent runs on its own virtual desktop.</p></li><li><p>Connectors - ChatGPT Agent uses Connectors to connect with external tools.</p></li><li><p>Scheduling - ChatGPT Agent has Scheduling option to schedule the task.</p></li><li><p>Website Permissions</p><ol><li><p>How to allow ChatGPT Agent to access your website.</p></li><li><p>How to block the OpenAI crawlers accessing your site.</p></li></ol></li><li><p>Architecture - ChatGPT Agent reverse engineered - live streaming &amp; control</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></li></ol><h2>1. Browser Agent</h2><p>Click Agent mode to activate ChatGPT Agent.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lvtk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lvtk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 424w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 848w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 1272w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lvtk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png" width="757" height="377" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/101a5624-a957-4d70-b816-637c7128f106_757x377.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:377,&quot;width&quot;:757,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46810,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435e3d81-21f1-4819-8dcb-0b20985c49fd_775x395.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_!lvtk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 424w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 848w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.png 1272w, https://substackcdn.com/image/fetch/$s_!lvtk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F101a5624-a957-4d70-b816-637c7128f106_757x377.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>The ChatGPT Agent sets up its own virtual desktop and performs tasks. It can book tickets, create files, order items, or carry out any task based on the prompt.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!faqq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!faqq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 424w, https://substackcdn.com/image/fetch/$s_!faqq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 848w, https://substackcdn.com/image/fetch/$s_!faqq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 1272w, https://substackcdn.com/image/fetch/$s_!faqq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!faqq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png" width="1000" height="240" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:240,&quot;width&quot;:1000,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23293,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.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_!faqq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 424w, https://substackcdn.com/image/fetch/$s_!faqq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 848w, https://substackcdn.com/image/fetch/$s_!faqq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 1272w, https://substackcdn.com/image/fetch/$s_!faqq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa75a7eaf-8b9a-4824-baa8-77b0be47eb46_1000x240.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>It combines <a href="https://openai.com/index/introducing-operator/">Operator mode</a> and <a href="https://openai.com/index/introducing-deep-research/">Deep Research</a>. Operator could act. Deep Research could analyze. Now both run together in one unified flow.</p></blockquote><p>It uses a browser agent that can browse and interact with websites. For sensitive actions like logins and credentials, it gives control back to user.</p><p>I tried ChatGPT Agent for a grocery order. The initial order was successful. On the second try it struggled because the item was out of stock, but overall, the experience was good.</p><p>The video below shows how it gives control back to users for sensitive steps like login.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;657a43d2-cc8d-4005-97cb-4580638806bc&quot;,&quot;duration&quot;:null}"></div><blockquote><p>The only drawback I noticed was that for a simple order it took quite a bit of time. If I had ordered, I would have done it faster. But I understand this is just the beginning, and the process will only get better over time.</p></blockquote><h2>2. Connectors </h2><p>ChatGPT Agent can connect to external tools through connectors. Connectors have been in regular chat for a while. Now the Agent can use them too. And Web browsing is enabled by default for Agent.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bKdX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bKdX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 424w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 848w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 1272w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bKdX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png" width="1039" height="628" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:628,&quot;width&quot;:1039,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58470,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.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_!bKdX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 424w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 848w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.png 1272w, https://substackcdn.com/image/fetch/$s_!bKdX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2b1f4d9-7440-458c-818a-fba75c696b83_1039x628.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>You can find more connectors in Settings &#8594; Connectors. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sh2r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sh2r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 424w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 848w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 1272w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sh2r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png" width="672" height="597" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:597,&quot;width&quot;:672,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44964,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.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_!sh2r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 424w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 848w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.png 1272w, https://substackcdn.com/image/fetch/$s_!sh2r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15c3e658-5de5-4d6f-89a2-6cadac99396a_672x597.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>When you connect a tool, you allow the Agent to read data and take actions in that tool. You still approve sensitive steps while it works.</p><p>You can add custom connectors too. They&#8217;re available for ChatGPT Pro, Team, and Enterprise workspaces. To create a connector, build an MCP server that links external tools or data sources, then deploy it, and connect it with ChatGPT.</p><p>If you want to learn more about MCP, check out my blogs on building MCP servers, deploying them, and adding OAuth support.</p><ul><li><p><a href="https://www.devshorts.in/p/how-to-build-your-own-mcp-server">How to build your own MCP Server?</a></p></li><li><p><a href="https://www.devshorts.in/p/how-to-host-your-mcp-server">How to host your MCP Server?</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-implement-oauth-for-mcp-server">How to add OAuth in MCP Server?</a></p></li></ul><h2>3. Scheduling </h2><p>You can now schedule ChatGPT Agent tasks. For Example: Set up a monthly grocery order. Tell the Agent what to buy and set it to run every month. You can include instructions in the schedule. You can use the scheduling option for any kind of recurring tasks.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5K66!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5K66!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 424w, https://substackcdn.com/image/fetch/$s_!5K66!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 848w, https://substackcdn.com/image/fetch/$s_!5K66!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 1272w, https://substackcdn.com/image/fetch/$s_!5K66!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5K66!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png" width="1081" height="742" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29e5331d-a848-4541-9360-798c034511c3_1081x742.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:742,&quot;width&quot;:1081,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:95301,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.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_!5K66!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 424w, https://substackcdn.com/image/fetch/$s_!5K66!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 848w, https://substackcdn.com/image/fetch/$s_!5K66!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.png 1272w, https://substackcdn.com/image/fetch/$s_!5K66!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29e5331d-a848-4541-9360-798c034511c3_1081x742.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>Manage the scheduled tasks under settings&#8594; schedules. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gNIH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gNIH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 424w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 848w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 1272w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gNIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png" width="1281" height="274" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:274,&quot;width&quot;:1281,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9822,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.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_!gNIH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 424w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 848w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 1272w, https://substackcdn.com/image/fetch/$s_!gNIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23802a9e-7943-4224-8b0e-e0f2ebae08a9_1281x274.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>4. Website controls</h2><p>We all know ChatGPT access websites. OpenAI uses <a href="https://platform.openai.com/docs/bots">three types of crawlers</a> for this. Each crawler is for different purposes. Website owners need to understand them. You can control which ones access your site.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uO70!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uO70!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 424w, https://substackcdn.com/image/fetch/$s_!uO70!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 848w, https://substackcdn.com/image/fetch/$s_!uO70!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 1272w, https://substackcdn.com/image/fetch/$s_!uO70!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uO70!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png" width="1060" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1060,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100939,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.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_!uO70!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 424w, https://substackcdn.com/image/fetch/$s_!uO70!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 848w, https://substackcdn.com/image/fetch/$s_!uO70!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.png 1272w, https://substackcdn.com/image/fetch/$s_!uO70!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feec4018b-b875-44a5-9e98-cc1b18d240fe_1060x620.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>How to block the ChatGPT bots</h3><p>We listed the OpenAI bots above. To block them from your site, place the following entries in your robots.txt.</p><pre><code>
User-agent: OAI-SearchBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: GPTBot
Disallow: /</code></pre><h3><strong>How to Allow ChatGPT Agent Access to Your Website</strong></h3><p>The ChatGPT Agent works like a bot that can perform real tasks on websites, from browsing pages to completing actions like shopping. Some site owners may want to allow the Agent to visit their site, since it handles genuine tasks like shopping or bookings.</p><p>The challenge is that fake bots could try to pretend to be ChatGPT Agent. To prevent this, you need a way to verify that a request is truly coming from the Agent.</p><p>OpenAI solves this by adding cryptographic signatures to every request. These signatures prove the request is genuine. By checking them, you can allow the real Agent while blocking impostors.</p><p>For detailed steps, see OpenAI&#8217;s guide on <a href="https://help.openai.com/en/articles/11845367-chatgpt-agent-allowlisting">ChatGPT Agent allowlisting</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_!77_g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!77_g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 424w, https://substackcdn.com/image/fetch/$s_!77_g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 848w, https://substackcdn.com/image/fetch/$s_!77_g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 1272w, https://substackcdn.com/image/fetch/$s_!77_g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!77_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png" width="1267" height="648" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:648,&quot;width&quot;:1267,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136005,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.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_!77_g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 424w, https://substackcdn.com/image/fetch/$s_!77_g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 848w, https://substackcdn.com/image/fetch/$s_!77_g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.png 1272w, https://substackcdn.com/image/fetch/$s_!77_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd062370d-21a6-43b6-93df-b5b407ddd980_1267x648.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>5. Reverse Engineering ChatGPT Agent</h2><p>After looking at the features, I wanted to see how the Browser Agent actually works under the hood. Since its proprietary, the full architecture isn&#8217;t public. But I came across an <a href="https://www.linkedin.com/pulse/reverse-engineering-openais-agent-mode-infrastructure-vasudevan-q7hvc/">article that reverse-engineered</a> ChatGPT Agent and described a likely design.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zbwn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zbwn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 424w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 848w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 1272w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zbwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png" width="783" height="406" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:406,&quot;width&quot;:783,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73265,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.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_!zbwn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 424w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 848w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.png 1272w, https://substackcdn.com/image/fetch/$s_!zbwn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bc1e495-6909-472b-bfb5-08ebbf59fdc9_783x406.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><figcaption class="image-caption">source:- <a href="https://www.linkedin.com/pulse/reverse-engineering-openais-agent-mode-infrastructure-vasudevan-q7hvc/">Reverse-Engineering OpenAI's Agent Mode Infrastructure</a></figcaption></figure></div><p>It explains how the agent launches a browser inside a virtual desktop, streams it live, and even hands control back to you when needed. When you move the cursor, those actions are applied directly to its virtual desktop. With the right workflow and infrastructure, this setup becomes possible.</p><p>A prototype built with this approach behaved much like ChatGPT Agent. You can see this prototype in action in the video below.</p><p>Source:- <a href="https://www.linkedin.com/posts/prabhuraj-vasudevan_openai-agentmode-livestreaming-activity-7359445870418776064-kXxc?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAT_a2UB9yelDQrBsC2DRbxuLXcMgi4ypYU">POC on ChatGPT Agent</a> </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;72b8a9d4-644f-4e04-8657-848e921547f6&quot;,&quot;duration&quot;:null}"></div><p>To make it clearer, here&#8217;s a diagram showing steps of live streaming and user control.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wHvh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wHvh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 424w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 848w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 1272w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wHvh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png" width="1456" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:111445,&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/170157596?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.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_!wHvh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 424w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 848w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 1272w, https://substackcdn.com/image/fetch/$s_!wHvh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2a84caf-5673-4155-b0e3-fd2e915e38b0_1667x391.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Let us see the flow in detail now.</p><h4>1. User Types Prompt in Chat Interface</h4><p>The user enters a prompt in the chat. The system captures it and forwards it to the backend, where it&#8217;s added to a queue for execution.</p><h4>2. Server Receives and Parses Command</h4><p>The backend receives the request, analyzes the instruction, identifies the intended action, and extracts the key parameters needed to perform it.</p><h4>3. Browser Action Execution</h4><p>The backend sends the instruction to the browser session. The browser opens the target site, navigates to the right section, fills in fields, and performs the required clicks or actions.</p><h4>4. Screenshot Capture and Processing</h4><p>The system continuously captures snapshots of the browser at short intervals. Each snapshot is resized, compressed, and encoded so it can be streamed efficiently without losing clarity.</p><h4>5. Real-Time Streaming and Display</h4><p>The server streams the processed frames back to the client in real time. So, the user sees a smooth live view of the agent&#8217;s actions as they happen. </p><h4>6. User Can Take Manual Control</h4><p>When the user clicks on the live stream, the system captures the click coordinates and sends them to the backend. The virtual browser then performs the same action at that location.</p><h4>7. State Synchronization and Maintains Session</h4><p>The browser, backend, and client remain in sync so that actions and visuals stay aligned. If the connection drops, the session can recover without losing progress.</p><h4>8. Continuous Feedback Loop</h4><p>Every action is reflected in the next frame, creating a constant loop of feedback. The user gains confidence by seeing the process live and can choose to stop, take over, or let the Agent continue.</p><blockquote><p>This is a likely architecture based on reverse engineering. It may not match the exact internal design of ChatGPT Agent, but a prototype built with this approach was tested and worked in a similar way.</p></blockquote><h2>Conclusion</h2><p>Hope you now got a clear idea about ChatGPT Agent, its core features, and the architecture behind how it works. </p><p>For additional details about ChatGPT Agent, including how reinforcement learning guides tool selection, benchmark results, and safeguards against risks like prompt injection, check <a href="https://www.youtube.com/watch?v=1jn_RpbPbEc">this video</a> from OpenAI.</p><p>The agentic space is evolving fast, and we will see even more powerful agents as this technology matures.</p><p>Happy learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/chatgpt-agent-explained?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/chatgpt-agent-explained?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/chatgpt-agent-explained?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[How to implement OAuth for MCP Server]]></title><description><![CDATA[Secure Your Remote MCP Server with OAuth (FastMCP + Auth0)]]></description><link>https://www.devshorts.in/p/how-to-implement-oauth-for-mcp-server</link><guid isPermaLink="false">https://www.devshorts.in/p/how-to-implement-oauth-for-mcp-server</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Thu, 21 Aug 2025 16:03:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z0Ve!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Anthropic introduced the <a href="https://modelcontextprotocol.io/docs/getting-started/intro">Model Context Protocol (MCP</a>). Now, developers have started using MCP servers in their workflows. You can now use MCP servers in VSCode, Cursor, and other AI-powered IDEs, or right in your app code, to connect AI with external data. At this point, there&#8217;s an MCP server for almost every system you can think of.</p><p>I have written articles on MCP covering topics like,</p><ul><li><p><a href="https://www.devshorts.in/p/how-to-build-your-own-mcp-server">How to build your own MCP Server?</a></p></li><li><p><a href="https://www.devshorts.in/p/how-to-host-your-mcp-server">How to host your MCP Server?</a></p></li><li><p><a href="https://devshorts.substack.com/p/ten-must-know-mcp-servers-for-every">Ten Must-Know MCP Servers</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-build-an-mcp-client">How to build an MCP Client</a></p></li></ul><p>This is my fifth post in this series. Since I haven&#8217;t implemented OAuth with MCP servers before, I decided to give it a try and document the process in this blog.</p><p>In this blog, I&#8217;ll cover:</p><ol><li><p>Quick MCP intro</p></li><li><p>MCP Transport Types</p></li><li><p>Understanding OAuth</p></li><li><p>OAuth Authorization flow for MCP Servers</p></li><li><p>Build and Deploy OAuth-protected MCP Server</p></li><li><p>Test OAuth MCP Server</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. Quick MCP intro</h2><p>For those new to MCP, it&#8217;s a Model Context Protocol that connects LLMs with external data. LLMs exist primarily on the client side. MCP clients talk to MCP servers. The server connects to external systems, fetches data, and sends it to the LLM running in the client.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kqjf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kqjf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 424w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 848w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 1272w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kqjf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png" width="1109" height="455" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:455,&quot;width&quot;:1109,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27225,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.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_!Kqjf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 424w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 848w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.png 1272w, https://substackcdn.com/image/fetch/$s_!Kqjf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85a2eee0-3e47-46fd-8813-b975d6406675_1109x455.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>The Model Context Protocol lets you build MCP servers that expose data and functionality to LLMs.</p><p>MCP servers have:</p><ul><li><p>Resources (<code>@mcp.resource</code>) - Expose data to LLMs (like reading files or databases)</p></li><li><p>Tools (<code>@mcp.tool</code>) - Provide functionality to LLMs (like sending emails or running code)</p></li><li><p>Prompts (<code>@mcp.prompt</code>) - Define reusable templates for LLM interactions</p></li></ul><h2>2. MCP Transport Types</h2><p>MCP supports different transport types for connecting clients and servers.</p><ul><li><p>STDIO Transport (Local)</p></li><li><p>Streamable HTTP Transport (Remote)</p></li><li><p>Custom Transport </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_!7bHX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7bHX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 424w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 848w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 1272w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7bHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png" width="959" height="457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:457,&quot;width&quot;:959,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31262,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.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_!7bHX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 424w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 848w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.png 1272w, https://substackcdn.com/image/fetch/$s_!7bHX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c96c764-9488-4f76-bf50-5f4ddca351f2_959x457.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>STDIO Transport: (Local)</h4><p>If you're planning to build a local MCP server that runs on the same machine as your client, use <a href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#stdio">STDIO </a>transport. The client will automatically launch your server as a subprocess when it starts up.</p><pre><code>if __name__ == "__main__":
    mcp.run()    # Uses STDIO transport by default</code></pre><h4>Streamable HTTP Transport: (Remote)</h4><p>If you're planning to build a remote MCP server that clients can access from different machines, use <a href="https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#streamable-http">Streamable HTTP transport</a>. Your server will run as a standalone service that clients can connect to over the network.</p><pre><code>if __name__ == "__main__":
   #To use HTTP, specify it in the run() method along with networking options
    mcp.run(transport="http", host="127.0.0.1", port=8000)  </code></pre><blockquote><p>This Streamable HTTP Transport replaced the older <a href="https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse">HTTP+SSE transport</a> method.</p></blockquote><h4>Custom Transport</h4><p>If you need specialized communication between your client and server that doesn't fit STDIO or HTTP patterns, build a custom transport. You define exactly how your client and server will communicate based on your specific requirements.</p><p>Here are some key differences between these transports.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QNEn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNEn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 424w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 848w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 1272w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png" width="1158" height="610" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:610,&quot;width&quot;:1158,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65578,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.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_!QNEn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 424w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 848w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.png 1272w, https://substackcdn.com/image/fetch/$s_!QNEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fedf2b2-7fae-4986-b526-301f941af632_1158x610.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>From the above table, we clearly know that OAuth is for remote servers. For Local Servers, credentials can be fetched from environment variables.</p></blockquote><h2>3. Understanding OAuth</h2><p><a href="https://www.microsoft.com/en-us/security/business/security-101/what-is-oauth">OAuth</a> is an Open Authorization that lets a client access a server&#8217;s resources without the user having to share their credentials.</p><p>If no credentials are shared, how does OAuth authorize the client to access the server?</p><p>They use access tokens. These tokens are used to authorize the client to access the server.</p><p>In the MCP setup, there is a MCP client and a MCP server. When the server has OAuth enabled, it requires every incoming request from the client to include a valid access token. The client attaches this token to each request, and the server verifies it before processing. If the token is valid, the request is allowed, if not, the server blocks it. This ensures that only authorized clients can access the server.</p><p>But now a big question comes up. </p><p>How does the client get this token?</p><p>Here&#8217;s how the client obtains an access token in the MCP setup.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z0Ve!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z0Ve!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 424w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 848w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 1272w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z0Ve!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png" width="1269" height="620" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:620,&quot;width&quot;:1269,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:58372,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.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_!z0Ve!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 424w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 848w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.png 1272w, https://substackcdn.com/image/fetch/$s_!z0Ve!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b63f7dd-7c11-4b7c-b678-dfdd902ad52e_1269x620.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>The client sends a first request to the MCP Server without any Token. The MCP server responds with a 401 error along with details about which Authorization Server to use and how to request a token. Using this information, the client contacts the Authorization Server, obtains a token, and then uses it to access the MCP Server.</p><blockquote><p>Access tokens are not only used to authorize clients. They also specify what level of access the client has, such as read or write permissions.</p></blockquote><p>I hope now you have a clear idea of what OAuth is and how it controls access between the client and the server.</p><h2>4. OAuth Authorization flow for MCP Servers</h2><p>There are four common types of OAuth flows.  </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AuZX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AuZX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 424w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 848w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 1272w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AuZX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png" width="1005" height="552" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b00f9973-f276-44f1-a510-ba17aad61397_1005x552.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:552,&quot;width&quot;:1005,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:118047,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.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_!AuZX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 424w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 848w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.png 1272w, https://substackcdn.com/image/fetch/$s_!AuZX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb00f9973-f276-44f1-a510-ba17aad61397_1005x552.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 this blog, we are going to see the Authorization Code Flow With PKCE, as this setup supports dynamic clients where any genuine client can authenticate and use the MCP Server.</p><h4>How Authorization Code Flow with PKCE Works</h4><ol><li><p>The MCP Client starts by sending a request to the MCP Server without a token.</p></li><li><p>The MCP Server responds with a 401 Unauthorized and provides authorization server details.</p></li><li><p>The Client extracts the metadata URL, fetches the metadata, and learns about the authorization and token endpoints, scopes, and supported grant types.</p></li><li><p>The Client may register itself dynamically with the Authorization Server to obtain client credentials.</p></li><li><p>The Client generates PKCE parameters (code_challenge, code_verifier) and opens the browser to the Authorization Server&#8217;s login page, passing client_id, resource details, and code_challenge.</p></li><li><p>The User logs in and approves the access request.</p></li><li><p>The Authorization Server redirects back to the Client with an authorization code.</p></li><li><p>The Client sends the authorization code along with the code_verifier to the Authorization Server&#8217;s token endpoint.</p></li><li><p>If valid, the Authorization Server returns an access token.</p></li><li><p>The Client retries the MCP request, now including the access token.</p></li><li><p>The MCP Server validates the token and grants access.</p></li><li><p>From this point, the Client continues communicating with the MCP Server using the access token until it expires.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sRbR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sRbR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 424w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 848w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 1272w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sRbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png" width="902" height="735" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:735,&quot;width&quot;:902,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77898,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.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_!sRbR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 424w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 848w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.png 1272w, https://substackcdn.com/image/fetch/$s_!sRbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2867850-a15a-4dc1-99e8-cd9a57aa08be_902x735.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><figcaption class="image-caption">source:- <a href="https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization">Authorization - Model Context Protocol</a></figcaption></figure></div><h2>5. Build and Deploy OAuth-protected MCP Server</h2><p>Now we are going to build MCP Server with OAuth and deploy in Render.</p><ul><li><p>Server: Streamable HTTP MCP Server </p></li><li><p>Framework: <a href="https://gofastmcp.com/servers/auth/authentication">FastMCP</a></p></li><li><p>Auth Provider: <a href="https://auth0.com/">Auth0</a></p></li><li><p>Hosting: <a href="https://render.com/">Render</a></p></li></ul><p>Here&#8217;s the simple MCP Server Code with OAuth implemented.</p><pre><code>from fastmcp import FastMCP
#from fastmcp.server.auth import RemoteAuthProvider
from fastmcp.server.auth.providers.jwt import JWTVerifier
from pydantic import AnyHttpUrl
import os
import sys
from datetime import datetime

# Read from environment
AUTH0_DOMAIN = os.getenv("AUTH0_DOMAIN", "your-tenant.us.auth0.com")
AUTH0_AUDIENCE = os.getenv("AUTH0_AUDIENCE", "https://your-api-identifier")
RESOURCE_SERVER_URL = os.getenv("RESOURCE_SERVER_URL", "https://your-domain.example.com/mcp") # your mcp server deployment url

# JWT verification setup
token_verifier = JWTVerifier(
    jwks_uri=f"https://{AUTH0_DOMAIN}/.well-known/jwks.json",
    issuer=f"https://{AUTH0_DOMAIN}/", # note the trailing slash
    audience=AUTH0_AUDIENCE            # must match your API identifier exactly
)

# Remote OAuth provider for MCP
auth = RemoteAuthProvider(
    token_verifier=token_verifier,
    authorization_servers=[AnyHttpUrl(f"https://{AUTH0_DOMAIN}/")],
    resource_server_url=RESOURCE_SERVER_URL      # usually your /mcp endpoint
)
mcp = FastMCP(name="Protected MCP Server", auth=auth)


@mcp.tool  
def test_str(name: str) -&gt; str:    
    return f"Hello, {name}!"


if __name__ == "__main__":
    port = int(os.environ.get("PORT", 8000))

    # Start an HTTP server on port 8000
    mcp.run(transport="http", host="0.0.0.0", port=8000)</code></pre><h4><strong>Auth0 Configurations</strong></h4><p>Quick setup guide for <a href="https://auth0.com/">Auth0</a> configuration required for OAuth-protected MCP server.</p><p><strong>Step 1. Create Application</strong></p><ul><li><p>In the Auth0 Dashboard, under Applications, create an application.</p></li><li><p>Link it to default API - Auth0 Management API or your own API if you plan to create as mentioned in step 2.</p></li><li><p>Grant the scopes: create:clients, read:clients, update:clients.</p></li></ul><p><strong>Step 2: Create API (Audience)</strong></p><ul><li><p>This step is needed if you want your own API instead of the default Auth0 Management API.</p></li><li><p>Under Applications &#8594; APIs, create a new API (e.g., MCP Server API).</p></li><li><p>Use a unique identifier (e.g. https://mcp-content-api ) with signing algorithm RS256.</p></li><li><p>Define scopes such as mcp:read, mcp:write</p></li></ul><p><strong>Step 3: Enable Dynamic Client Registration</strong></p><ul><li><p>Go to Auth0 Dashboard</p></li><li><p>Go to Settings &#8594; Advanced tab</p></li><li><p>Enable "OIDC Dynamic Application Registration"</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RFis!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RFis!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 424w, https://substackcdn.com/image/fetch/$s_!RFis!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 848w, https://substackcdn.com/image/fetch/$s_!RFis!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 1272w, https://substackcdn.com/image/fetch/$s_!RFis!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RFis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png" width="718" height="158" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78801fb4-eb58-468e-93af-81711d08ec21_718x158.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:158,&quot;width&quot;:718,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:18548,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.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_!RFis!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 424w, https://substackcdn.com/image/fetch/$s_!RFis!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 848w, https://substackcdn.com/image/fetch/$s_!RFis!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 1272w, https://substackcdn.com/image/fetch/$s_!RFis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78801fb4-eb58-468e-93af-81711d08ec21_718x158.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Step 4: Make the API Identifier as Default Audience</strong></p><ul><li><p>Go to Auth0 Dashboard</p></li><li><p>Go to Settings &#8594; General Tab</p></li><li><p>Make your Identifier as Default Audience</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YH3k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YH3k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 424w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 848w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 1272w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YH3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png" width="1198" height="274" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:274,&quot;width&quot;:1198,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:52041,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.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_!YH3k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 424w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 848w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 1272w, https://substackcdn.com/image/fetch/$s_!YH3k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8208f920-4dbe-463e-b697-c4d3d3f2cfb7_1198x274.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>Remember to do step 3, and 4. Else you will not be able to connect your MCP Server from client even after authorization.</p></blockquote><p>With Auth0 configured, we can now deploy the MCP Server on <a href="https://render.com/">Render</a>. </p><h4><strong>Deploy Remote MCP Server</strong></h4><ul><li><p>In Render Dashboard, Create Web Service from Git repo.</p></li><li><p>Set the Build Command: <code>pip install -r requirements.txt</code></p></li><li><p>Set the Start Command: <code>python server.py</code></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EBg5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EBg5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 424w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 848w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 1272w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EBg5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png" width="1430" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:1430,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49839,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.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_!EBg5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 424w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 848w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.png 1272w, https://substackcdn.com/image/fetch/$s_!EBg5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8698f99f-bcfc-4fed-9d78-69962681e590_1430x412.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><li><p>Add Environment Variables </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vtCJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vtCJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 424w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 848w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 1272w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vtCJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png" width="1247" height="259" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:259,&quot;width&quot;:1247,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9706,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.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_!vtCJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 424w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 848w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 1272w, https://substackcdn.com/image/fetch/$s_!vtCJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bca83e3-8bbf-4daa-ae10-328bb2e5e190_1247x259.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li><li><p>Click Deploy - MCP Server will be live at the Render URL</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KSaG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KSaG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 424w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 848w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 1272w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KSaG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png" width="1048" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:1048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43633,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.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_!KSaG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 424w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 848w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.png 1272w, https://substackcdn.com/image/fetch/$s_!KSaG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4685321a-f853-49eb-91b4-c1a92addb3f5_1048x307.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></ul><h2><strong>6. Test OAuth MCP Server</strong></h2><p>I connected this remote OAuth MCP Server through <a href="https://github.com/modelcontextprotocol/inspector">MCP Inspector.</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_!5ani!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5ani!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 424w, https://substackcdn.com/image/fetch/$s_!5ani!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 848w, https://substackcdn.com/image/fetch/$s_!5ani!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 1272w, https://substackcdn.com/image/fetch/$s_!5ani!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5ani!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png" width="737" height="577" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:577,&quot;width&quot;:737,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28787,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.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_!5ani!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 424w, https://substackcdn.com/image/fetch/$s_!5ani!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 848w, https://substackcdn.com/image/fetch/$s_!5ani!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.png 1272w, https://substackcdn.com/image/fetch/$s_!5ani!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0be5c8d3-698c-4bb5-88a5-9e72836e1600_737x577.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>When you click Connect, the authorization flow begins. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dJo8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dJo8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 424w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 848w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 1272w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dJo8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png" width="382" height="528" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:528,&quot;width&quot;:382,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24401,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F41c1a448-23a7-4af0-9d00-5342ee8ce559_382x528.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_!dJo8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 424w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 848w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.png 1272w, https://substackcdn.com/image/fetch/$s_!dJo8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9ee47833-ad8b-4b17-ada3-d621f0c4ad59_382x528.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>After you approve the request, MCP Inspector establishes the connection and loads the tools from the server.</p><p>Now test the tool from our MCP server: Enter a name, and the server responds with Hello {name}. </p><p>This is how it works.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aaYs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aaYs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 424w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 848w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 1272w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aaYs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png" width="776" height="801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:776,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31875,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.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_!aaYs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 424w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 848w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.png 1272w, https://substackcdn.com/image/fetch/$s_!aaYs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3631efc6-3a48-4801-8e5a-b8593b474e49_776x801.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><br>Enable Google OAuth in Auth0</h2><p>To allow users to sign in with Google, enable the Google OAuth in Auth0.</p><ul><li><p>In the Auth0 Dashboard, go to Authentication &#8594; Social &#8594; Google OAuth.</p></li><li><p>Under Applications, turn on the toggle for your application.</p></li><li><p>Save the changes.</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_!JuEn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JuEn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 424w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 848w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 1272w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JuEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png" width="989" height="462" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:462,&quot;width&quot;:989,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:134776,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.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_!JuEn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 424w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 848w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.png 1272w, https://substackcdn.com/image/fetch/$s_!JuEn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F54a989c6-8a04-4e33-914b-0f5f8bd6e0b0_989x462.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>Once enabled, users can sign in to the MCP server using their Google account.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-4Xt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-4Xt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 424w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 848w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 1272w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-4Xt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png" width="813" height="481" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:481,&quot;width&quot;:813,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26406,&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/170066966?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.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_!-4Xt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 424w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 848w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.png 1272w, https://substackcdn.com/image/fetch/$s_!-4Xt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ab9fba-0d37-4a54-8e46-baa5995d64a3_813x481.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 walked through how to add OAuth to an MCP server step by step.</p><p>I couldn&#8217;t find a clear guide on setting up OAuth for an MCP server, so I put this together to show a simple, working flow from start to finish. The code and settings here are tested and working, and this MCP Server can work with other MCP clients too.</p><p>You can use any OAuth provider. Just wire it to your MCP server and see how it works for you.</p><p>Happy learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-implement-oauth-for-mcp-server?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/how-to-implement-oauth-for-mcp-server?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/how-to-implement-oauth-for-mcp-server?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[How to build a Full Stack Application using AI Agents]]></title><description><![CDATA[Product Idea - Planning - Coding - Code Review -Deployment]]></description><link>https://www.devshorts.in/p/how-to-build-a-full-stack-application</link><guid isPermaLink="false">https://www.devshorts.in/p/how-to-build-a-full-stack-application</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 01 Aug 2025 18:01:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KL-s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have built many applications with the help of AI. But one question kept popping up in my mind. </p><p>Can we really use AI at every stage of product development, from ideation to deployment, and still ship a full-stack app that actually works?</p><p>To figure this out in detail, I decided to take a hands-on approach. I built a complete full stack app using AI tools. This blog walks through how I built it from end to end and highlights the tools I used at each stage.</p><p>Here are the stages I followed and the tools I used at each step.</p><ol><li><p>Product ideation - with O3</p></li><li><p>Requirements planning - with Traycer AI &amp; Task Master AI</p></li><li><p>Code implementation - with Claude Code</p></li><li><p>Code review - with CodeRabbit</p></li><li><p>Testing - using Claude Code and MCP Servers</p></li><li><p>Deployment - using Claude Code and MCP Servers</p></li></ol><p>If you&#8217;d like to read more posts on building with AI, you can subscribe below.</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>Product Development Stages</h2><p>When building this full stack app, I divided the product development process into clear stages. Everything started with the idea and moved step by step until deployment. Here are the stages I followed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KL-s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KL-s!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 424w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 848w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 1272w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KL-s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png" width="780" height="601" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:601,&quot;width&quot;:780,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76396,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.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_!KL-s!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 424w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 848w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.png 1272w, https://substackcdn.com/image/fetch/$s_!KL-s!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f373c4-d638-42cb-8b85-14b3b8008f92_780x601.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>The next diagram shows which AI Tool I used, from product ideation to deployment.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jqVN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqVN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 424w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 848w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 1272w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png" width="1456" height="269" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:269,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124665,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.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_!jqVN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 424w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 848w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 1272w, https://substackcdn.com/image/fetch/$s_!jqVN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c720354-a2a9-4bc3-849e-b57554a7f4aa_1800x333.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>1. The Product Ideation: </h2><p>For product ideation, I asked o3 to suggest some ideas. o3 is a reasoning model from OpenAI. I gave a short prompt asking for product ideas and it returned a list of ideas. I picked the one that felt interesting to me. It was called Virtual Try on App.</p><p>Here&#8217;s what the app will do. Users upload their photo and a dress image. The app shows how the outfit looks on their body. It helps them decide before buying.</p><p>I liked this idea because it&#8217;s visual and interactive. It needed a good frontend to handle the image uploads and solid backend to process the images. </p><p>This app was a good use case for me to test how well AI agents can build a real full stack application. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EBRA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EBRA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 424w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 848w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 1272w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EBRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png" width="1307" height="730" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:730,&quot;width&quot;:1307,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115218,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.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_!EBRA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 424w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 848w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.png 1272w, https://substackcdn.com/image/fetch/$s_!EBRA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e018a7d-2d32-447e-92fa-0c5fa9696f23_1307x730.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>2. Preparing PRD and Plan</h2><p>The next step was preparing the Product Requirements Document (PRD) and Technical Plan Document.</p><blockquote><p>Think of the PRD as the blueprint for the product. It defines what you are building and why. It outlines the core features, constraints, and assumptions. Basically, it serves as a high-level document that explains the product.</p></blockquote><p>I gave the product description to O3 and asked it to prepare PRD.md.</p><h4>Plan with Traycer</h4><p>Once PRD was clear, I gave it to <a href="https://traycer.ai/">Traycer AI</a>, and asked it to generate technical_plan.md </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3_ci!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3_ci!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 424w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 848w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 1272w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3_ci!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png" width="1149" height="545" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:545,&quot;width&quot;:1149,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80666,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.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_!3_ci!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 424w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 848w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.png 1272w, https://substackcdn.com/image/fetch/$s_!3_ci!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aa2712e-9615-4060-b3fa-c6040932b6ea_1149x545.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>Plan with Traycer, and Tasks with TaskMaster </h4><p>After creating the technical plan, there's another option I explored: <a href="https://www.task-master.dev/">TaskMaster AI</a>. I tested giving that plan to TaskMaster, and it generated a detailed task breakdown. While I didn't follow this task-by-task approach for this blog, it's worth noting as an alternative workflow. I'll cover TaskMaster in a separate post.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XDRz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XDRz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 424w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 848w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 1272w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XDRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png" width="1200" height="402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78529,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.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_!XDRz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 424w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 848w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.png 1272w, https://substackcdn.com/image/fetch/$s_!XDRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7ee5c8c-df0f-4244-879d-af9117abff30_1200x402.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>Here is a glimpse of the tasks generated by TaskMaster AI. Each task had an ID, title, description, priority, test strategy, and step-by-step instructions. </p><p>These tasks could be completed by the TaskMaster Agent itself or passed to Claude Code or any terminal agent to build the codebase task by task.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o1IO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o1IO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 424w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 848w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 1272w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o1IO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png" width="1293" height="361" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe178dca-4d34-4112-a581-28336fa29201_1293x361.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:361,&quot;width&quot;:1293,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38397,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.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_!o1IO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 424w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 848w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.png 1272w, https://substackcdn.com/image/fetch/$s_!o1IO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe178dca-4d34-4112-a581-28336fa29201_1293x361.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>For this experiment, I used the direct Plan with Traycer approach.</p></blockquote><p>I shared a PRD with Traycer, and it gave me a detailed technical_plan.md covering the system overview, architecture, and approach. </p><p>Here were the kinds of details Traycer included in the Technical Plan,</p><ul><li><p>Tech stack and framework selection</p></li><li><p>End-to-end data flow</p></li><li><p>Service communication diagrams</p></li><li><p>Environment setup</p></li><li><p>Testing strategy</p></li><li><p>Deployment and monitoring plan</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_!ptXF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ptXF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 424w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 848w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 1272w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ptXF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png" width="960" height="632" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:632,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43721,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.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_!ptXF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 424w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 848w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.png 1272w, https://substackcdn.com/image/fetch/$s_!ptXF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f7f8159-4aae-463e-9a20-bd82a3518c61_960x632.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5VYf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5VYf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 424w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 848w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 1272w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5VYf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png" width="536" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:536,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:83190,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.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_!5VYf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 424w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 848w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.png 1272w, https://substackcdn.com/image/fetch/$s_!5VYf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf25fc5c-820b-481d-8964-9c204068a1e1_536x533.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>By the end of this step, I had a clear technical plan showing how the app would function and what needed to be built.</p><h2>3. Code with Claude Code:</h2><p>After preparing the technical plan, I moved on to the actual development. I gave the technical_plan.md to <a href="https://docs.anthropic.com/en/docs/claude-code/overview">Claude Code</a> and let it handle the setup. It read through the plan and started building the project step by step.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yjOW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yjOW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 424w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 848w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 1272w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yjOW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png" width="793" height="220" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:220,&quot;width&quot;:793,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45597,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.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_!yjOW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 424w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 848w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 1272w, https://substackcdn.com/image/fetch/$s_!yjOW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8ae1dbd-17d6-41be-ad51-fc7bb8fd936c_793x220.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>First, Claude Code created the project structure for me. It set up separate folders for backend and frontend, added all the necessary config files, and got the basic setup ready.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7Kma!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7Kma!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 424w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 848w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 1272w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7Kma!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png" width="426" height="213" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:213,&quot;width&quot;:426,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12102,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.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_!7Kma!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 424w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 848w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 1272w, https://substackcdn.com/image/fetch/$s_!7Kma!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b48d472-6c9c-4b73-b62a-731578f317ba_426x213.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Next, Claude started building the core of the app. It took care of scaffolding, set up the main routes, created basic UI components, and wired everything together according to the plan. Claude did most of the heavy lifting.</p><p>There were some hiccups. A few files did not run on the first try. A few flows needed adjustments. Whenever something was off, I gave feedback, and Claude updated the code and retried the steps. After a few rounds, the flow was working.</p><p>Once the base version was ready, I used Claude Code to push it to GitHub using the GitHub MCP Server. It initialized the repo, added the remote, committed the files, and pushed the code, all in one go.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JJAA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JJAA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 424w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 848w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 1272w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JJAA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png" width="1032" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:1032,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44621,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.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_!JJAA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 424w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 848w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.png 1272w, https://substackcdn.com/image/fetch/$s_!JJAA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c577de0-7e22-4638-9e89-835f301959fe_1032x533.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>One thing I&#8217;ve noticed with AI tools is they are good at moving fast. Especially for POCs and early-stage builds. This speed is a huge advantage. But developer oversight is still important.</p></blockquote><p>This is how Claude Code helped me get the base product ready.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;e0b11c87-d922-40e5-a15a-bf33208339ac&quot;,&quot;duration&quot;:null}"></div><p>With the scaffolded app in GitHub, I was ready to move on to the next stage. The next step was to review the code and fix any issues before continuing.</p><h2>4. Code Review with CodeRabbit:</h2><p>I reviewed the code using an AI code reviewer <a href="https://www.coderabbit.ai/">CodeRabbit</a>. It works inside the editor and can also review pull requests.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r--q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r--q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 424w, https://substackcdn.com/image/fetch/$s_!r--q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 848w, https://substackcdn.com/image/fetch/$s_!r--q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 1272w, https://substackcdn.com/image/fetch/$s_!r--q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r--q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png" width="1205" height="474" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:474,&quot;width&quot;:1205,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64582,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.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_!r--q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 424w, https://substackcdn.com/image/fetch/$s_!r--q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 848w, https://substackcdn.com/image/fetch/$s_!r--q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.png 1272w, https://substackcdn.com/image/fetch/$s_!r--q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1320be8a-598e-4462-b13c-d5ddfd5fe099_1205x474.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>This is how CodeRabbit showed reviews inside VS Code. It analyzed the entire codebase and added detailed feedback right inside VS Code. It pointed out potential issues, missing checks, CORS settings, and areas where the code could be improved or refactored. You can see comments on specific lines, and the right panel lists all the feedback in one place.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DPW6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DPW6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 424w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 848w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 1272w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DPW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png" width="1046" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1046,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78915,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.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_!DPW6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 424w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 848w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.png 1272w, https://substackcdn.com/image/fetch/$s_!DPW6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F614b8f48-26c6-40b2-973b-b49a850df61c_1046x768.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>After each commit, it asked whether to review the changes. This made it easy to spot and fix issues right inside the editor.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-4aP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-4aP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 424w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 848w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 1272w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-4aP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png" width="603" height="166" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/390b0c49-727d-4802-99b7-427e86181a7a_603x166.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:166,&quot;width&quot;:603,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9979,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.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_!-4aP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 424w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 848w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 1272w, https://substackcdn.com/image/fetch/$s_!-4aP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F390b0c49-727d-4802-99b7-427e86181a7a_603x166.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>5. Testing</h2><p>For testing I just relied on the tools I already had in my stack.</p><blockquote><p>I tested both the frontend and backend using Claude Code, either directly or with a helper tool.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KPgP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KPgP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 424w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 848w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 1272w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KPgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png" width="665" height="157" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:157,&quot;width&quot;:665,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8157,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.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_!KPgP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 424w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 848w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 1272w, https://substackcdn.com/image/fetch/$s_!KPgP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd1a0579f-758f-4e60-a4f9-8ea8dbbab6a2_665x157.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Testing the UI</h4><p>To test the UI, I used the Playwright MCP Server along with Claude Code. The UI lets users upload their photo and a garment image. I checked if both uploads worked, if the try on button stayed disabled until both images were picked, and if the layout looked fine across browsers. The tests ran in headless mode and gave a simple pass or fail for each check. This covered the main user flows I wanted to test.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BcLI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BcLI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 424w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 848w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 1272w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BcLI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:198950,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.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_!BcLI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 424w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 848w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.png 1272w, https://substackcdn.com/image/fetch/$s_!BcLI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e682fbc-1fd2-4bc0-a184-8888415a92b2_1903x967.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zWB0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zWB0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 424w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 848w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 1272w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zWB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png" width="1456" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:97448,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.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_!zWB0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 424w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 848w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.png 1272w, https://substackcdn.com/image/fetch/$s_!zWB0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34e3c717-c434-47a2-9663-3e69ec7b2dec_1914x972.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>Testing the API</h4><p>For backend testing, I asked Claude Code to scan the codebase and list the available API endpoints for testing.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zjDR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zjDR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 424w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 848w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 1272w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zjDR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png" width="978" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:978,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40636,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.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_!zjDR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 424w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 848w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.png 1272w, https://substackcdn.com/image/fetch/$s_!zjDR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd2481e8-bf18-43d3-9f23-1906e841a33b_978x509.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>Claude Code generated the curl commands needed to test each API endpoint, covering both synchronous and asynchronous flows. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dybE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dybE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 424w, https://substackcdn.com/image/fetch/$s_!dybE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 848w, https://substackcdn.com/image/fetch/$s_!dybE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 1272w, https://substackcdn.com/image/fetch/$s_!dybE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dybE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png" width="810" height="568" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:568,&quot;width&quot;:810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46222,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.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_!dybE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 424w, https://substackcdn.com/image/fetch/$s_!dybE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 848w, https://substackcdn.com/image/fetch/$s_!dybE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.png 1272w, https://substackcdn.com/image/fetch/$s_!dybE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa47068ba-a9b5-4cea-8f76-a8afb8aa3888_810x568.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>Here, Claude Code used curl commands to test the API with sample images. It asked me for confirmation before running each test.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!INrA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!INrA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 424w, https://substackcdn.com/image/fetch/$s_!INrA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 848w, https://substackcdn.com/image/fetch/$s_!INrA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 1272w, https://substackcdn.com/image/fetch/$s_!INrA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!INrA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png" width="1052" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:1052,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44337,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.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_!INrA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 424w, https://substackcdn.com/image/fetch/$s_!INrA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 848w, https://substackcdn.com/image/fetch/$s_!INrA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.png 1272w, https://substackcdn.com/image/fetch/$s_!INrA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a23ae94-09ed-4f78-a9cc-3063f795ba10_1052x509.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>After running the tests, I checked the results for job creation, fetching the processed image, and deleting a job. The responses confirmed that each API step worked as expected. Finally, Claude Code gave a summary, confirming that all the API endpoints had been tested successfully.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UKkq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UKkq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 424w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 848w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 1272w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UKkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png" width="1002" height="551" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:551,&quot;width&quot;:1002,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37811,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.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_!UKkq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 424w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 848w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.png 1272w, https://substackcdn.com/image/fetch/$s_!UKkq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb802b0eb-42e6-4047-a3c4-1ee7243989b5_1002x551.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>6. Deployment</h2><p>Here&#8217;s how I handled deployment for both frontend and backend using Claude Code and two different MCP servers.</p><p>This diagram shows the deployment workflow. The frontend was deployed using the Netlify MCP Server, and the backend was deployed using the Railway MCP Server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6ond!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6ond!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 424w, https://substackcdn.com/image/fetch/$s_!6ond!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 848w, https://substackcdn.com/image/fetch/$s_!6ond!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 1272w, https://substackcdn.com/image/fetch/$s_!6ond!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6ond!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png" width="1234" height="343" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:343,&quot;width&quot;:1234,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37063,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.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_!6ond!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 424w, https://substackcdn.com/image/fetch/$s_!6ond!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 848w, https://substackcdn.com/image/fetch/$s_!6ond!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.png 1272w, https://substackcdn.com/image/fetch/$s_!6ond!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4702b2f5-19dc-41a1-9d72-fa378c070d0c_1234x343.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>Frontend Deployment</h4><p>I configured <a href="https://docs.netlify.com/build/build-with-ai/netlify-mcp-server/">Netlify MCP Server</a> with Claude Code, and I asked Claude to deploy the frontend. There were few issues during the first attempt, but Claude Code resolved them and deployed successfully.  After the deployment, the frontend was live at the given Netlify URL.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R8fP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R8fP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 424w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 848w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 1272w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R8fP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png" width="1250" height="610" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:610,&quot;width&quot;:1250,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64329,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.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_!R8fP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 424w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 848w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.png 1272w, https://substackcdn.com/image/fetch/$s_!R8fP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f3a184b-79f9-4678-91aa-5d33c4f0cab5_1250x610.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>The Netlify Console confirmed that the frontend was deployed successfully.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zE5x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zE5x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 424w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 848w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 1272w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zE5x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png" width="871" height="201" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85750303-3588-409a-a9e1-824e2ba4173e_871x201.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:201,&quot;width&quot;:871,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24540,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.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_!zE5x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 424w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 848w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 1272w, https://substackcdn.com/image/fetch/$s_!zE5x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85750303-3588-409a-a9e1-824e2ba4173e_871x201.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Backend Deployment</h4><p>Next, I used Claude Code to deploy the backend using the <a href="https://github.com/jason-tan-swe/railway-mcp">Railway MCP Server</a>. It set the environment variables, triggered deployment, and confirmed the API was live. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WhDy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WhDy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 424w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 848w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 1272w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WhDy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png" width="1275" height="711" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:711,&quot;width&quot;:1275,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80133,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.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_!WhDy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 424w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 848w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.png 1272w, https://substackcdn.com/image/fetch/$s_!WhDy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ef66e32-9df6-45e1-a272-55d5e71073ed_1275x711.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>The Railway Console showed that the API was up and running.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ukYp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ukYp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 424w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 848w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 1272w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ukYp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png" width="1456" height="535" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:535,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109215,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.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_!ukYp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 424w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 848w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.png 1272w, https://substackcdn.com/image/fetch/$s_!ukYp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bcbfbd3-201c-461c-afae-5160e14f1930_1901x699.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><strong>Connecting Frontend and Backend</strong></h4><p>Once both parts were live, I needed to integrate them.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Mvhx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mvhx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 424w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 848w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 1272w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mvhx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png" width="1235" height="283" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:283,&quot;width&quot;:1235,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69349,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.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_!Mvhx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 424w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 848w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 1272w, https://substackcdn.com/image/fetch/$s_!Mvhx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee9013f-a6e5-4805-9643-0c0406a7d7d9_1235x283.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Initially, I faced CORS and Content Security Policy (CSP) issues that blocked API requests from the frontend to the backend.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TR0P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TR0P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 424w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 848w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 1272w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TR0P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png" width="879" height="304" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:304,&quot;width&quot;:879,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44125,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.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_!TR0P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 424w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 848w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.png 1272w, https://substackcdn.com/image/fetch/$s_!TR0P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe0db44b-cb76-4199-a09b-0ec1387430ec_879x304.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>After adjusting the CORS headers and updating the CSP config, the frontend was able to communicate with the backend. The UI loaded correctly, and I could upload images and start the try-on workflow.</p><p>Here's the final working app I built entirely with AI tools - <a href="https://virtual-costume-frontend.netlify.app/">Virtual Try-On Fashion App</a>. </p><p>The application infrastructure works well. Users can upload images, trigger the try-on process, and receive results. The garment fitting isn't perfect since the underlying method simply merges images rather than realistic fitting, but the complete full-stack workflow functions as intended.</p><p>This shows that AI tools can assist at every stage of full-stack development and help us deliver functional applications.</p><p>Some Visuals from the App: </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nFF8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nFF8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 424w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 848w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 1272w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nFF8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png" width="1456" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201621,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.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_!nFF8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 424w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 848w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.png 1272w, https://substackcdn.com/image/fetch/$s_!nFF8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9b610d44-d3c2-43a3-a52f-017da7e8a894_1908x969.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WVXo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WVXo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 424w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 848w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 1272w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WVXo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png" width="1456" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94973,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.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_!WVXo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 424w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 848w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.png 1272w, https://substackcdn.com/image/fetch/$s_!WVXo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F276a474f-4960-4bac-b291-7a0a113fa528_1918x972.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 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!V6oi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V6oi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 424w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 848w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 1272w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!V6oi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png" width="1456" height="741" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:741,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:327689,&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/168535283?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.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_!V6oi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 424w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 848w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.png 1272w, https://substackcdn.com/image/fetch/$s_!V6oi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff92774b9-4cd4-461d-af6e-aa73181cf874_1918x976.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>Deployment Notes for Developers</strong></h3><p>If you are building a POC, these free-tier platforms can help,</p><ul><li><p>For frontend: <a href="https://vercel.com/">Vercel</a>, <a href="https://render.com/">Render</a>, or <a href="https://www.netlify.com/">Netlify</a>.</p></li><li><p>For backend: <a href="https://render.com/">Render </a>or <a href="https://railway.com/">Railway</a>.</p></li></ul><blockquote><p>I used Railway for the backend deployment. Because Render&#8217;s MCP Server does not support free-tier API deployments through Claude Code. </p></blockquote><p>However, you can still do the free deployment using Render manually through the console.</p><h2>Conclusion</h2><p>After building this app, using AI Agents at every stage, I got a clear picture of what is possible today. From product planning to code implementation, testing, and deployment, AI agents like Traycer, Claude Code, and CodeRabbit helped move things faster and with less manual effort.</p><p>There were a few bumps along the way, especially with integration and some areas where the AI could do better. But for building a prototype or testing new ideas, this approach works well.</p><p>If you want to speed up development or cut down on manual steps, it is worth trying an AI-first workflow. Just make sure to spend enough time on planning. The clearer the plan, the better the results you get from the tools.</p><p>Hope you found this post useful.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-build-a-full-stack-application?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/how-to-build-a-full-stack-application?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/how-to-build-a-full-stack-application?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Claude Code: The Complete Guide for Developers]]></title><description><![CDATA[A step-by-step walkthrough to install, configure, and master Anthropic&#8217;s CLI-based AI coding agent]]></description><link>https://www.devshorts.in/p/claude-code-the-complete-guide-for</link><guid isPermaLink="false">https://www.devshorts.in/p/claude-code-the-complete-guide-for</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Mon, 14 Jul 2025 14:31:01 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/65f27eb5-01e8-49d8-a903-44d2a386f255_608x308.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A few months ago, Anthropic introduced <a href="https://docs.anthropic.com/en/docs/claude-code/overview">Claude Code</a>, an AI terminal coding agent to help developers in their workflow.</p><p>Initially, adoption was slow. The main reason? Accessing Claude Code required a separate Anthropic API key, which needed to be topped up with credits. In other words, even if you were a Claude Pro or Max subscriber, you still needed to pay extra to use Claude Code.</p><p>Many developers stayed away because of this cost issue.</p><p>However, Anthropic recently made a significant announcement. Claude Pro/Max users can now access Claude Code as part of their existing Pro ($20) or Max Plan ($100), with some usage limits. This update made Claude Code available to all paid Claude users.</p><p>With this change, more developers have started to use Claude Code. However, many people are still unsure about how to get started or how to make the most of its features. </p><p>So, I write this post to cover everything about Claude Code. The first part of this blog covers Claude Code setup and key features like slash commands, hooks, and MCP server integration. The second part includes useful GitHub repos for Claude Code, developer workflows, and pro tips, all in one place.</p><p>We'll cover:</p><h3>Part 1: Claude Code Basics</h3><ol><li><p>Installation and first run</p></li><li><p>Custom slash commands </p></li><li><p>Claude Code Hooks </p></li><li><p>Claude Code Memory</p></li><li><p>MCP integration, and IDE setup</p></li></ol><h3>Part 2: Claude Code Collections and Developer Workflows</h3><ol><li><p>Collections of Custom slash commands </p></li><li><p>Collections of Claude Code Hooks</p></li><li><p>Collections of claude.md files</p></li><li><p>Collections of Essential MCP servers</p></li><li><p>Build GitHub Actions workflow with Claude Code</p></li><li><p>Work on Multiple Features with Git Worktrees in Claude Code</p></li><li><p>Automate Your Development Workflow with Claude Code</p></li><li><p>Calculate Your Claude Code Usage </p></li><li><p>How to justify the $100 Max plan</p></li><li><p>Ten Pro Tips for Claude Code </p></li></ol><p>Let us get started! </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>Part 1: Claude Code Basics</h2><p>Claude Code is a terminal-based coding agent from Anthropic. It's now the latest alternative to Cursor. Since it runs in the terminal, you can use it with any IDE or your existing 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_!pOnA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pOnA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 424w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 848w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 1272w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pOnA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png" width="721" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:721,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12238,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pOnA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 424w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 848w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.png 1272w, https://substackcdn.com/image/fetch/$s_!pOnA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4dd0203f-ee44-4e32-a48a-fcab3a0636b1_721x307.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>1.1 Installation and First Run</h3><p>Setting up Claude Code is straightforward. Ensure you have Node.js 18 or newer and a supported operating system such as macOS, Linux, or Windows with WSL. </p><p>Install Claude Code with npm:</p><pre><code>npm install -g @anthropic-ai/claude-code
cd your-project-directory
claude</code></pre><blockquote><p>Do NOT use <code>"sudo npm install -g" </code>as this can lead to permission issues.</p></blockquote><p>Authenticate with your Anthropic account on first run. Make sure you have a Pro or Max subscription to access it without extra API costs.</p><h3>1.2 Slash Commands</h3><p>Claude Code comes with built-in <a href="https://docs.anthropic.com/en/docs/claude-code/slash-commands">slash commands</a>. It makes working with Claude Code much easier. Explore commands by typing <code>/help</code> or just start typing <code>/</code> to see the full list.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;0987af2f-3d3c-474f-8704-37400fc6105b&quot;,&quot;duration&quot;:null}"></div><h4>Custom slash command</h4><p>Claude Code lets you create custom slash commands. These are basically shortcuts for prompts you use often. Instead of typing the same prompts over and over, you create a command and reuse it.</p><p>There are two types of custom commands you can create,</p><ul><li><p><a href="https://docs.anthropic.com/en/docs/claude-code/slash-commands#personal-commands">Personal Commands</a> (will be available across all your projects)</p></li><li><p><a href="https://docs.anthropic.com/en/docs/claude-code/slash-commands#project-commands">Project Commands</a> (specific to a single project)</p></li></ul><h4>Creating Personal (user) Command:</h4><p>a. Create a markdown file and place your file in <code>~/.claude/commands/</code>.</p><pre><code><code>cd /home/user-name
mkdir -p .claude/commands
vi cleanup.md</code></code></pre><p>b. Write all your prompt instruction in that markdown file. Use $ARGUMENTS for dynamic variables.</p><pre><code><code>#cleanup.md

Analyze $ARGUMENTS and identify dead code:
- Unused functions and methods
- Unreachable code paths
- Unused imports and dependencies
- Commented-out code blocks
- Obsolete configuration files

Provide a cleanup plan with safe removal suggestions and potential impact analysis.</code></code></pre><p>c. Save the markdown. Now use <code>/cleanup</code> in Claude Code to run your instruction.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6HCL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6HCL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 424w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 848w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 1272w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6HCL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png" width="820" height="165" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:165,&quot;width&quot;:820,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8856,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.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_!6HCL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 424w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 848w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 1272w, https://substackcdn.com/image/fetch/$s_!6HCL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb20facc1-effa-4f40-a9ce-9004f7e095e4_820x165.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HKQA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HKQA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 424w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 848w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 1272w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HKQA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png" width="1417" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:1417,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61757,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.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_!HKQA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 424w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 848w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.png 1272w, https://substackcdn.com/image/fetch/$s_!HKQA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aca80c8-d90d-491b-a50b-49fef99c85b1_1417x532.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>Usage examples:</h4><p>"<code>/cleanup src/components</code>" to clean a directory, "<code>/cleanup UserService.js</code>" to clean a file, and "<code>/cleanup authentication</code>"<code> </code>to clean a specific feature.</p><p>I tried this on my codebase. Here's how it worked based on the instruction given in the cleanup.md file.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E_Of!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E_Of!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 424w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 848w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 1272w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E_Of!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png" width="1456" height="740" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:740,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:129037,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.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_!E_Of!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 424w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 848w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.png 1272w, https://substackcdn.com/image/fetch/$s_!E_Of!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F290f95f9-d5b4-4d59-985e-b0050caac5ec_1894x962.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>Creating Project Command:</h4><p>Project commands live in <code>project_dir/.claude/commands/</code> and are only visible within that project.</p><p>a. Create the markdown file inside your project.</p><pre><code>cd your-project-directory
mkdir -p .claude/commands
vi security-review.md</code></pre><p>b. Add your prompt and save.</p><pre><code><code>#security-review.md

Review this code for security vulnerabilities.
Suggest fixes for any security issues you find.
Highlight any risky dependencies or unsafe patterns in the code.</code></code></pre><p>c. Now you can use <code>/security-review</code> in your project.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_3Yi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_3Yi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 424w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 848w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 1272w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_3Yi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png" width="1042" height="195" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/14903b0c-245c-41ae-a796-3675028505cc_1042x195.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:195,&quot;width&quot;:1042,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9644,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.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_!_3Yi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 424w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 848w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 1272w, https://substackcdn.com/image/fetch/$s_!_3Yi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14903b0c-245c-41ae-a796-3675028505cc_1042x195.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4sG6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4sG6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 424w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 848w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 1272w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4sG6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png" width="1456" height="496" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:496,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87685,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.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_!4sG6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 424w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 848w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.png 1272w, https://substackcdn.com/image/fetch/$s_!4sG6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fe5aa83-da56-48f4-aa17-2ce911ca9902_1840x627.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>Organizing Commands with Folders</h4><p>You can organize commands in subdirectories for better structure. </p><pre><code><code>project_root/.claude/commands/

&#9500;&#9472;&#9472; frontend/
&#9474;   &#9492;&#9472;&#9472; code-refactor.md
&#9500;&#9472;&#9472; backend/
&#9474;   &#9492;&#9472;&#9472; build-api.md
&#9492;&#9472;&#9472; utils/
    &#9492;&#9472;&#9472; create-README.md</code></code></pre><p>When organized this way, Claude Code displays folder names with slash commands. It makes easy to find what you need.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CoTk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CoTk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 424w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 848w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 1272w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CoTk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png" width="1422" height="290" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:290,&quot;width&quot;:1422,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:146061,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27577c71-3f26-48ab-96ee-de8588b66e71_1422x290.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_!CoTk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 424w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 848w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 1272w, https://substackcdn.com/image/fetch/$s_!CoTk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdcf76ffc-5ea1-4b48-b0ab-afa296883f5f_1422x290.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Quick Tips</h4><ul><li><p>Keep commands simple and focused.</p></li><li><p>Use <code>$ARGUMENTS</code> to pass dynamic inputs.</p></li></ul><h3>1.3 Claude Code Hooks</h3><p><a href="https://docs.anthropic.com/en/docs/claude-code/hooks">Claude Code Hooks</a> are user-defined shell commands that run at specific points in your workflow. Because these hooks execute without confirmation, it&#8217;s important to make sure they are safe and secure.</p><p>a. Create hooks using /hooks command.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!F_J9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F_J9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 424w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 848w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 1272w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F_J9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png" width="862" height="131" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:131,&quot;width&quot;:862,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6216,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.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_!F_J9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 424w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 848w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 1272w, https://substackcdn.com/image/fetch/$s_!F_J9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96839e6b-a00a-4356-a517-dd4ac264ee8a_862x131.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>b. Choose when your hook should run (e.g., before a tool runs, after it runs, on notifications, etc.).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-_V1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-_V1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 424w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 848w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 1272w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-_V1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png" width="1765" height="647" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:647,&quot;width&quot;:1765,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103990,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c62621c-872d-4193-afff-a2a07143cdfa_1765x647.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_!-_V1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 424w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 848w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.png 1272w, https://substackcdn.com/image/fetch/$s_!-_V1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6694c738-8d4c-474c-aead-f5a48f815178_1765x647.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>c. Once the hook event is selected, Add New Matcher </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I0X0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I0X0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 424w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 848w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 1272w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I0X0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png" width="962" height="296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:296,&quot;width&quot;:962,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27076,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F791c0724-985a-436d-8ea9-86ddd0656868_962x296.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_!I0X0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 424w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 848w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.png 1272w, https://substackcdn.com/image/fetch/$s_!I0X0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1b87d00-5f3f-42c7-b496-c114496bdda8_962x296.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>d. Type <code>Bash</code> for the matcher. Find the <a href="https://docs.anthropic.com/en/docs/claude-code/hooks#pretooluse">various matchers</a> for PreToolUse. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Tyi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Tyi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 424w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 848w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 1272w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Tyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png" width="716" height="118" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/729abdfd-e5b2-4be4-b482-f31572274812_716x118.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:118,&quot;width&quot;:716,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3618,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.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_!9Tyi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 424w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 848w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 1272w, https://substackcdn.com/image/fetch/$s_!9Tyi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F729abdfd-e5b2-4be4-b482-f31572274812_716x118.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>e. Click Add New Hook. and enter the command that needs to be run, </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aI0C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aI0C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 424w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 848w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 1272w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aI0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png" width="895" height="285" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:285,&quot;width&quot;:895,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26208,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb87a99bf-384f-48db-9a40-bf72e07b308b_895x285.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_!aI0C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 424w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 848w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.png 1272w, https://substackcdn.com/image/fetch/$s_!aI0C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1d1a6f5-57c0-448f-93aa-e215dcc0b248_895x285.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_!lutV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lutV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 424w, https://substackcdn.com/image/fetch/$s_!lutV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 848w, https://substackcdn.com/image/fetch/$s_!lutV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 1272w, https://substackcdn.com/image/fetch/$s_!lutV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lutV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png" width="800" height="211" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:211,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9269,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5bd4f96-ef34-4596-a6ce-c881a02f848b_800x211.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_!lutV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 424w, https://substackcdn.com/image/fetch/$s_!lutV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 848w, https://substackcdn.com/image/fetch/$s_!lutV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 1272w, https://substackcdn.com/image/fetch/$s_!lutV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F517e9b74-dcb5-4b7d-93d7-23689e263c74_800x211.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>f. Save the hook either at user or project level.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Vo-i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Vo-i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 424w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 848w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 1272w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Vo-i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png" width="888" height="322" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:322,&quot;width&quot;:888,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32496,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.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_!Vo-i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 424w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 848w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.png 1272w, https://substackcdn.com/image/fetch/$s_!Vo-i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe84b545a-04fb-488d-8e18-1270fd5f080b_888x322.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>g. Once added you can see your hooks with /hooks list.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DxT5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DxT5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 424w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 848w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 1272w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DxT5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png" width="947" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:947,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24861,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50ff2e67-59c8-42bf-b92f-22d346594a74_947x275.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_!DxT5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 424w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 848w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.png 1272w, https://substackcdn.com/image/fetch/$s_!DxT5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55727f73-03b2-4af5-ab53-d18db56941d0_947x275.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>We selected PreToolUse as hook event. It means every time Claude Code is about to execute any prompt, your hook script will run first. If your script finds any issues, it can even stop the process right there. </p><p>This is a simple example of how effectively we can use hooks.</p><p>Hooks settings in Claude Code are saved in settings files. You can set them for yourself or for your whole project.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ywaw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ywaw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 424w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 848w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 1272w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ywaw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png" width="785" height="241" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abc89ae6-1198-4569-839e-d5be878469fa_785x241.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:241,&quot;width&quot;:785,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48371,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.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_!ywaw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 424w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 848w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.png 1272w, https://substackcdn.com/image/fetch/$s_!ywaw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabc89ae6-1198-4569-839e-d5be878469fa_785x241.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>1.4 Claude Code Memory</h3><p>Claude Code has a <a href="https://docs.anthropic.com/en/docs/claude-code/memory">memory feature</a> called the CLAUDE.md file. This is the first file it reads with every prompt. Add your project details, coding standards, build steps, or anything else you want Claude to remember, just like Cursor rules.</p><h4>Memory Types</h4><p>Claude Code supports three memory types. Each one serves a different purpose.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2h0w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2h0w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 424w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 848w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 1272w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2h0w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png" width="926" height="369" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:369,&quot;width&quot;:926,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86889,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.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_!2h0w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 424w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 848w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.png 1272w, https://substackcdn.com/image/fetch/$s_!2h0w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda9519f3-f617-4ff8-b112-d629f521f2d9_926x369.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>Command to Create CLAUDE.md</h4><p>Run <code>/init</code> to bootstrap the file. Choose the memory type and location.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WQfU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WQfU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 424w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 848w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 1272w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WQfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png" width="884" height="122" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:122,&quot;width&quot;:884,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6805,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.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_!WQfU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 424w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 848w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 1272w, https://substackcdn.com/image/fetch/$s_!WQfU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9fd0658f-19a8-4611-b571-4de8a9742db9_884x122.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4-zm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4-zm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 424w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 848w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 1272w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4-zm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png" width="869" height="271" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:271,&quot;width&quot;:869,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31190,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67a3bb8d-9070-46fe-a6a3-61886caf840f_869x565.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_!4-zm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 424w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 848w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.png 1272w, https://substackcdn.com/image/fetch/$s_!4-zm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d4b8b39-0f97-473a-8519-c37889ec3aa8_869x271.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>Command to Edit CLAUDE.md</h4><p>Use <code>/memory</code> to edit </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1kIW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1kIW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 424w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 848w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 1272w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1kIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png" width="719" height="127" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:127,&quot;width&quot;:719,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5210,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.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_!1kIW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 424w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 848w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 1272w, https://substackcdn.com/image/fetch/$s_!1kIW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94ce260b-084c-44b9-94b3-1f7440ad21eb_719x127.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zT2b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zT2b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 424w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 848w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 1272w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zT2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png" width="840" height="248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:248,&quot;width&quot;:840,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:22127,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.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_!zT2b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 424w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 848w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.png 1272w, https://substackcdn.com/image/fetch/$s_!zT2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd208875-f578-4c97-9527-eeb7c0bcb9c0_840x248.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><strong>Quickly add memories with the </strong><code>#</code><strong> shortcut</strong></h4><p>To add memory fast, write your input with the `#` character and enter. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8EDk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8EDk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 424w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 848w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 1272w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8EDk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png" width="1161" height="275" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:275,&quot;width&quot;:1161,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24685,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.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_!8EDk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 424w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 848w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 1272w, https://substackcdn.com/image/fetch/$s_!8EDk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ef485a-58a4-40e6-b798-554c69c3fb76_1161x275.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>What you can write in CLAUDE.md</h4><p>CLAUDE.md can contain any information you want Claude Code to remember about your project. It can have project overview, commands, coding standards, folder structure, design notes, links to docs, etc.</p><p>Below are some examples</p><p>project preferences</p><pre><code><code>See @README for project overview and @package.json for available npm commands for this project.

# Additional Instructions
- git workflow @docs/git-instructions.md</code></code></pre><p>personal preferences</p><pre><code><code># Individual Preferences
- @~/.claude/my-project-instructions.md</code></code></pre><p>Let us now see how to add MCP Servers in Claude Code.</p><h3>1.5 MCP Integration and IDE Setup</h3><p>We can connect <a href="https://docs.anthropic.com/en/docs/claude-code/mcp">Claude Code to different MCP Servers</a>. </p><ul><li><p>Stdio MCP Server (Local or npm/PyPI MCP Server using stdio transport)</p></li><li><p>SSE MCP Server (Remote MCP server using SSE as transport)</p></li><li><p>Streamable HTTP MCP Server (Remote MCP server using HTTP streaming)</p></li></ul><h4>Adding Stdio MCP Server</h4><pre><code># Basic syntax
claude mcp add &lt;name-for-server&gt; -s &lt;scope&gt; &lt;command&gt; [args...] -e &lt;env-variables&gt;</code></pre><p>For example, I added the <a href="https://github.com/makenotion/notion-mcp-server?tab=readme-ov-file#using-npm">Notion MCP server</a> with user-level scope and custom environment variables.</p><ul><li><p>Use <code>-s</code> to set the scope (e.g., <code>user</code> or project)</p></li><li><p>Use <code>-e</code> to pass environment variables</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DVUH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DVUH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 424w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 848w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 1272w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DVUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png" width="1416" height="247" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:247,&quot;width&quot;:1416,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38482,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.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_!DVUH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 424w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 848w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 1272w, https://substackcdn.com/image/fetch/$s_!DVUH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc59324da-6500-46b6-990f-e6ab72acf53d_1416x247.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I also tested it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RAaf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RAaf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 424w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 848w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 1272w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RAaf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png" width="1305" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1305,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:69125,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.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_!RAaf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 424w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 848w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.png 1272w, https://substackcdn.com/image/fetch/$s_!RAaf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F524f1857-d836-491b-8c43-b8e2e3181bc2_1305x556.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>Adding SSE MCP Server</h4><p>I built an SSE-based MCP server long back, so let&#8217;s try adding that now.</p><p>Add <code>"--transport SSE" </code>Flag for SSE Server</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kr2e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kr2e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 424w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 848w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 1272w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kr2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png" width="1315" height="223" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:223,&quot;width&quot;:1315,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:30643,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.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_!kr2e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 424w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 848w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 1272w, https://substackcdn.com/image/fetch/$s_!kr2e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68c84f12-b964-4cea-9c8b-4be9bc816c32_1315x223.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>And it works like below.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S-xN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S-xN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 424w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 848w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 1272w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S-xN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png" width="1456" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42854,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.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_!S-xN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 424w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 848w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 1272w, https://substackcdn.com/image/fetch/$s_!S-xN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49591a8-f85d-485c-8b94-f5b0785071a3_1460x345.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><blockquote><p>Note that MCP originally used HTTP + SSE for transport. It now supports the improved HTTP Stream transport but still remains compatible with SSE. If you want to know more about the MCP transport, please check <a href="https://modelcontextprotocol.io/docs/concepts/transports#built-in-transport-types">this page.</a></p></blockquote><p>So let us now try connecting the latest HTTP Stream MCP Server.</p><h4>Adding Streamable HTTP MCP Server</h4><p>I built an MCP server that uses HTTP stream transport. This server deploys your web app to Vercel or Render based on your input. I connected it to Claude Code using the --transport http flag.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_9A6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_9A6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 424w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 848w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 1272w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_9A6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png" width="1527" height="177" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:177,&quot;width&quot;:1527,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28272,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d712429-7603-4590-bd11-e46838ee627c_1527x177.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_!_9A6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 424w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 848w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 1272w, https://substackcdn.com/image/fetch/$s_!_9A6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b802735-4c4b-4421-b2ff-09ce8d0b9680_1527x177.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Explore MCP Servers using <code>/mcp </code>command.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c9yU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c9yU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 424w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 848w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 1272w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c9yU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png" width="946" height="204" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:204,&quot;width&quot;:946,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21842,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.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_!c9yU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 424w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 848w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 1272w, https://substackcdn.com/image/fetch/$s_!c9yU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00b4014f-4fb6-4512-a104-5e1175faa688_946x204.png 1456w" sizes="100vw" loading="lazy"></picture><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_!zhOO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zhOO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 424w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 848w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 1272w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zhOO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png" width="846" height="228" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21e7b79a-7997-43cf-80c3-932e02198852_846x228.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:228,&quot;width&quot;:846,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17724,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.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_!zhOO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 424w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 848w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 1272w, https://substackcdn.com/image/fetch/$s_!zhOO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21e7b79a-7997-43cf-80c3-932e02198852_846x228.png 1456w" sizes="100vw" loading="lazy"></picture><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_!VyTO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VyTO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 424w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 848w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 1272w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VyTO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png" width="742" height="130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:130,&quot;width&quot;:742,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9461,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.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_!VyTO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 424w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 848w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 1272w, https://substackcdn.com/image/fetch/$s_!VyTO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e66fcc7-3eba-4d04-863a-f53886bce86b_742x130.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Import MCP Servers from Claude Desktop</h4><p>If you have MCP servers configured in Claude Desktop, you can <a href="https://docs.anthropic.com/en/docs/claude-code/mcp#import-mcp-servers-from-claude-desktop">import</a> them into Claude Code with a single command.</p><pre><code>claude mcp add-from-claude-desktop</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jJcl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jJcl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 424w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 848w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 1272w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jJcl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png" width="1080" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:41553,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.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_!jJcl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 424w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 848w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.png 1272w, https://substackcdn.com/image/fetch/$s_!jJcl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa66c3dbd-4a90-44da-88f2-bd321df3f93d_1080x443.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>Add MCP servers from JSON configuration</h4><p>You can also add <a href="https://docs.anthropic.com/en/docs/claude-code/mcp#add-mcp-servers-from-json-configuration">MCP Servers from JSON configuration</a>.</p><pre><code>claude mcp add-json &lt;name&gt; '&lt;json&gt;'</code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Tncx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tncx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 424w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 848w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 1272w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tncx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png" width="1477" height="111" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/320850b7-244f-4e13-934b-db87e131a535_1477x111.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:111,&quot;width&quot;:1477,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25722,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F23845937-1ad1-40a8-b7bb-0fbde675b2de_1477x111.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_!Tncx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 424w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 848w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 1272w, https://substackcdn.com/image/fetch/$s_!Tncx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F320850b7-244f-4e13-934b-db87e131a535_1477x111.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Use MCP prompts as slash commands</h4><p>If you&#8217;ve worked with MCP servers before, you know they <a href="https://github.com/modelcontextprotocol/typescript-sdk?tab=readme-ov-file#prompts">have prompts</a>. Claude Code will automatically detect these prompts from any connected MCP server and <a href="https://docs.anthropic.com/en/docs/claude-code/mcp#use-mcp-prompts-as-slash-commands">show them as slash commands</a> in your console.</p><blockquote><p>By default, Claude Code doesn&#8217;t create slash commands for MCP servers. But if you define prompts in your MCP server, those prompts become available as slash commands inside Claude Code.</p></blockquote><p>You can see this in my screenshot below. After I added a prompt to my web extractor MCP server, Claude Code instantly created a new command called <code>/web-extractor:summarize-url</code>. Now, I can use my MCP server directly with a single command.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W70c!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W70c!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 424w, https://substackcdn.com/image/fetch/$s_!W70c!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 848w, https://substackcdn.com/image/fetch/$s_!W70c!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 1272w, https://substackcdn.com/image/fetch/$s_!W70c!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W70c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png" width="1377" height="147" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:147,&quot;width&quot;:1377,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9357,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.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_!W70c!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 424w, https://substackcdn.com/image/fetch/$s_!W70c!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 848w, https://substackcdn.com/image/fetch/$s_!W70c!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 1272w, https://substackcdn.com/image/fetch/$s_!W70c!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064dd4a3-9a78-4385-ae0b-cf926ba674cd_1377x147.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Prompts are a core concept in MCP, just like tools and resources. Here&#8217;s the code I added to my MCP server to register this prompt named <code>"</code>summarize-url<code>".</code></p><pre><code>// Prompt: summarize-url
server.registerPrompt(
  "summarize-url",
  {
    title: "Summarize URL Content",
    description: "Extract content from the given URL and summarize it",
    argsSchema: { 
      url: z.string().url().describe("The URL to extract and summarize")
    }
  },
  ({ url }) =&gt; ({
    messages: [{
      role: "user",
      content: {
        type: "text",
        text: `Extract content from ${url} and summarize it`
      }
    }]
  })
);</code></pre><h4>Integrate Claude Code with IDE</h4><p>You can use <a href="https://docs.anthropic.com/en/docs/claude-code/ide-integrations">Claude Code directly inside your code editor</a>. This makes coding much easier.</p><p>Most popular IDEs have Claude Code plugins. Install the plugin for your editor. VS Code, Cursor, Windsurf, and JetBrains IDEs all support it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yTEi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yTEi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 424w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 848w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 1272w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yTEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png" width="1075" height="311" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:311,&quot;width&quot;:1075,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:42328,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.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_!yTEi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 424w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 848w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.png 1272w, https://substackcdn.com/image/fetch/$s_!yTEi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2fbf7e17-b719-4330-bd1a-00abc517329d_1075x311.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>Part 2: Claude Code Collections and Developer Workflows</h2><p>This second part of the blog will share helpful collections and real developer workflows with Claude Code. You&#8217;ll find links, examples, and tips you can use right away.</p><h3>2.1 Collections of Slash Commands</h3><p>We use custom slash commands to save time and automate tasks.  I&#8217;ve collected some GitHub repos that give useful custom slash commands.</p><ul><li><p><a href="https://github.com/hesreallyhim/awesome-claude-code?tab=readme-ov-file#slash-commands-">slash commands by awesome claude code</a></p></li><li><p><a href="https://www.claudecode.io/commands">claudecode.io commands directory</a></p></li><li><p><a href="https://slashcommands.cc/">slashcommands.cc</a></p></li><li><p><a href="https://github.com/qdhenry/Claude-Command-Suite?tab=readme-ov-file#claude-code-custom-slash-commands">claude command suite</a></p></li><li><p><a href="https://github.com/hikarubw/claude-commands?tab=readme-ov-file#claude-commands">claude custom commands</a></p></li></ul><h3>2.2 Collection of Claude Code Hooks</h3><ul><li><p>The <a href="https://github.com/disler/claude-code-hooks-mastery?tab=readme-ov-file#claude-code-hooks-mastery">claude-code-hooks-mastery</a> repo has hooks for blocking risky commands, logging tool actions, and sending notifications. You can explore the <code>.claude/hooks</code> folder to see real examples.</p></li><li><p>This <a href="https://github.com/hesreallyhim/awesome-claude-code?tab=readme-ov-file#hooks-">awesome-claude-code repo</a> also collects useful hook examples from the community.</p></li><li><p>The <a href="https://github.com/automazeio/claude-code-for-power-users?tab=readme-ov-file#hooks--automation">claude-code-for-power-users</a> repo lists hooks for tasks like code formatting and notifications.</p></li></ul><h3><strong>2.3 Collection of claude.md files</strong></h3><p>Developers use <code>claude.md</code> files to help Claude remember project details, coding standards, and instructions. </p><ul><li><p><a href="https://github.com/hesreallyhim/awesome-claude-code?tab=readme-ov-file#claudemd-files-">This GitHub repo</a> has a collection of claude.md files from different projects.</p></li><li><p><a href="https://github.com/automazeio/claude-code-for-power-users?tab=readme-ov-file#comprehensive-claudemd-structure">claude-code-for-power-users</a> explains a comprehensive claude.md structure.</p></li></ul><h3>2.4 Available MCP Servers for Claude Code</h3><p>There are many MCP servers available for Claude Code. Here are some resources with lists of available and essential MCP servers.</p><ul><li><p><a href="https://github.com/undeadpickle/claude-code-mcpinstall?tab=readme-ov-file#essential-mcp-servers">Essential MCP Servers</a> </p></li><li><p><a href="https://www.anthropic.com/partners/mcp">Anthropic MCP Integrations</a></p></li><li><p><a href="https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file#server-implementations">Awesome MCP Servers</a></p></li><li><p><a href="https://mcp.so/">MCP Server Directory</a></p></li></ul><h3><strong>2.5 Build GitHub Actions workflow with Claude Code</strong></h3><p>You can go from idea to working automation by just describing what you need.<br>Watch a <a href="https://www.youtube.com/watch?v=VC6dmPcin2E">demo video</a> here.</p><p>In this demo, the user asks Claude Code to create a GitHub Actions workflow that updates the README with a list of <code>.md</code> files. Claude Code breaks the request into steps, generates the required Python script and workflow files, commits the changes, and handles any errors along the way. After setup, every commit automatically updates the README as requested.</p><h3><strong>2.6 </strong>Work on Multiple Features with Git Worktrees</h3><ul><li><p>Sometimes you need to work on multiple features at once. But working in the same branch causes conflicts.</p></li><li><p>Use Git worktrees to create separate copies of your codebase with each copy on its own branch.</p></li><li><p>This means you can develop different features in parallel.</p></li><li><p>You can automate the setup with scripts or terminal aliases to create branches and open new IDE windows.</p></li><li><p>Run a separate Claude Code instance in each worktree with its own terminal and port.</p></li><li><p>Your work stays isolated, so features don&#8217;t clash.</p></li><li><p>When you finish a feature, just commit your changes and merge them back into the main branch.</p></li><li><p>This approach is great for anyone who wants to build multiple features at once without waiting.</p></li></ul><p>Watch the complete technical implementation <a href="https://www.youtube.com/watch?v=Bz5fyyCa2-0&amp;t=34s">here</a>.</p><h3><strong>2.7 Automate Development Workflow with Claude Code</strong></h3><ul><li><p>Turn on plan mode with Shift+Tab to see the plan before coding starts.</p></li><li><p>Use <code>/init</code> to set up your claude.md file with project rules and context.</p></li><li><p>Drag in screenshots of errors or UI designs to give Claude more context.</p></li><li><p>Add folders from other projects so Claude understands your full app structure.</p></li><li><p>Share docs or paste URLs so Claude has access to the latest API info.</p></li><li><p>For big projects, let Claude use sub-agents to work on tasks in parallel.</p></li><li><p>Always review the code output, just like you would with a pull request.</p></li><li><p>Create custom slash commands like <code>/issues [task description]</code> to generate GitHub issues in user story format. The issue gets uploaded to GitHub automatically.</p></li><li><p>Run <code>/work [issue number]</code> to pull an issue, let Claude work on it, and make commits after every big change.</p></li></ul><p>See how another developer runs <a href="https://www.youtube.com/watch?v=gNR3XI5Eb0k">this workflow</a> here.</p><h3><strong>2.8 Calculate Your Claude Code Usage</strong></h3><p>If you want to track Claude Code usage, try the <a href="https://github.com/ryoppippi/ccusage">ccusage tool</a>. It analyzes your Claude Code token usage and costs from local JSONL files.</p><pre><code>npm install -g ccusage

ccusage          # Show daily report (default)
ccusage daily    # Daily token usage and costs
ccusage monthly  # Monthly aggregated report</code></pre><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-pGg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-pGg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 424w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 848w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 1272w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-pGg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png" width="1456" height="453" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:453,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65538,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.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_!-pGg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 424w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 848w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.png 1272w, https://substackcdn.com/image/fetch/$s_!-pGg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7f48be8-2eb1-45a8-966a-613fff14f0d2_1897x590.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>2.9 How to Justify the $100 Max Plan</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xhCk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xhCk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 424w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 848w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 1272w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xhCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png" width="1456" height="438" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:438,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140904,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.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_!xhCk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 424w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 848w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.png 1272w, https://substackcdn.com/image/fetch/$s_!xhCk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4fe2b5f-55c8-40ff-8bd0-65ac8d15cf44_1658x499.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><figcaption class="image-caption"><a href="https://github.com/automazeio/claude-code-for-power-users?tab=readme-ov-file#pricing-strategy-for-power-users">source:- Claude API and Plan comparison</a></figcaption></figure></div><h3>2.10 Ten Pro Tips for Claude Code</h3><p><a href="https://www.anthropic.com/engineering/claude-code-best-practices">This post</a> from Anthropic discusses some Claude Code best practices. In addition to that, here are some tips I've found useful.</p><h4><strong>1. Claude Code as a CLI</strong></h4><p>Claude Code works like any command-line tool. You can use arguments, run it headless, chain commands, and pipe data. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!31Y6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!31Y6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 424w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 848w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 1272w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!31Y6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png" width="997" height="310" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:310,&quot;width&quot;:997,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23550,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.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_!31Y6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 424w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 848w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.png 1272w, https://substackcdn.com/image/fetch/$s_!31Y6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7756b3c0-a208-487d-827e-7e1b41ccd284_997x310.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><strong>2. Use Claude Code with flags for more features</strong></h4><p>You can add flags to your commands for extra control. For example, you can set the output format as json using a flag. Here are some useful flags.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!S5NU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!S5NU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 424w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 848w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 1272w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!S5NU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png" width="891" height="293" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:293,&quot;width&quot;:891,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:25766,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.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_!S5NU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 424w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 848w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.png 1272w, https://substackcdn.com/image/fetch/$s_!S5NU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb9090690-95db-4f33-b7bf-e098c685d9e8_891x293.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><strong>3. Plan Mode for Better Results</strong> </h4><p>Press Shift+Tab to activate plan mode. Claude Code creates a detailed plan before writing any code. Review the plan first, then let it execute.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KUQp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KUQp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 424w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 848w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 1272w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KUQp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png" width="685" height="126" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/edde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:126,&quot;width&quot;:685,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9158,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.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_!KUQp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 424w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 848w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 1272w, https://substackcdn.com/image/fetch/$s_!KUQp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedde20a2-4c18-46a7-9d3f-8c7bd9c06067_685x126.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4><strong>4. Use Sub-Agents for Complex Tasks</strong> </h4><p>For big projects, tell Claude Code to use sub-agents. Multiple Claude instances work in parallel on different parts of your task. This turns hours of work into minutes.</p><h4><strong>5. Skip Permissions for Claude Code</strong> </h4><p>Use <code>--dangerously-skip-permissions</code> while starting claude to avoid continuous permission prompts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WkKF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WkKF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 424w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 848w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 1272w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WkKF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png" width="1456" height="441" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:441,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:48678,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.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_!WkKF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 424w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 848w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.png 1272w, https://substackcdn.com/image/fetch/$s_!WkKF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7b5ae4ce-416c-4d1b-a3fc-b09bd0b47105_1458x442.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>6. Slash Commands for frequent and common Tasks</h4><p>Create slash commands for frequent and common tasks like refactoring or code review. They save time and add flexibility. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HNpk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HNpk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 424w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 848w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 1272w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HNpk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png" width="969" height="101" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:101,&quot;width&quot;:969,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:11604,&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/166586913?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.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_!HNpk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 424w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 848w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 1272w, https://substackcdn.com/image/fetch/$s_!HNpk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F623e5f34-b2c0-41e3-8b5a-787f3ceca34d_969x101.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>7. Memory Management - claude.md File</h4><p>The claude.md file is your project&#8217;s memory. You can use it to store instructions, style guides, and any important information you want Claude Code to remember.<br>When writing instructions, be as clear and specific as possible.</p><p>For example: &#8220;Use 2-space indentation&#8221; is much better than just saying &#8220;Format code properly.&#8221;</p><h4><strong>8. Image Feedback and Screenshot Automation</strong></h4><p>When you&#8217;re building a UI, you can give feedback to Claude Code by pasting screenshots. Just drag and drop the image. You can also automate taking screenshots using a Puppeteer or Playwright MCP server. Claude Code is really good at handling UI tasks if you share an image and ask it to make changes.</p><h4><strong>9. Claude Code as MCP Server and Client</strong></h4><p>Claude Code works both as an MCP server and a client. You can connect other MCP servers to Claude Code to use their tools. You can also make Claude Code act as an MCP server, so other clients can connect and use what Claude Code offers.</p><h4><strong>10. Claude Code with GitHub </strong></h4><p>Claude Code works seamlessly with the GitHub CLI. You can open pull requests, review code, and manage issues from the interface. The GitHub MCP Server is rarely needed, so you can think and add this, if it is really needed.</p><h2>Conclusion</h2><p>We have now seen everything about Claude Code. It is time for you to try out the commands and configurations we discussed. Explore them and find the workflow that works best for you.</p><p>Since Claude Code is available with both Pro and Max plans, you can use it for all kinds of tasks without any extra cost. It makes development smoother and more efficient.</p><p>So go ahead and give Claude Code a try. See how it fits into your daily workflow and helps you get more done.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-code-the-complete-guide-for?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-code-the-complete-guide-for?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-code-the-complete-guide-for?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[How to use Cursor Rules]]></title><description><![CDATA[It's all about Cursor Rules]]></description><link>https://www.devshorts.in/p/how-to-use-cursor-rules</link><guid isPermaLink="false">https://www.devshorts.in/p/how-to-use-cursor-rules</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 27 Jun 2025 16:30:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7VwJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>AI Editors introduced vibe coding, so building websites and apps are no longer a challenge. Cursor is one of these AI editors, and most developers use it nowadays. But not everyone uses it effectively.</p><p>I have been using Cursor for a long time. I can tell you that, if you use the right tactics, you can write better code and code faster, just like an experienced developer. Cursor Rules help you get the most out of Cursor. Without rules, Cursor gives you generic code. With rules, it gives you code that actually fits your project standards.</p><p>So, what are cursor rules exactly? They're instructions that tell Cursor AI how to write code in your specific project.</p><p>In this blog, we're going to explore more on cursor rules. </p><p>We will cover:</p><ul><li><p>What are cursor rules</p></li><li><p>Types of cursor rules</p></li><li><p>How to create cursor rules</p></li><li><p>Rule inheritance</p></li><li><p>Testing cursor with and without rules</p></li><li><p>Tips for better cursor rules</p></li><li><p>Pre-built rules ( cursor.directory, awesome-cursorrules, cursor-rules CLI)</p></li><li><p>Use rules to manage memory in cursor- A Developer Technique</p></li></ul><p>At the end of this blog, you&#8217;ll know what Cursor Rules are, how to use them, where to find good ready-made rules from the community, and how to create your own rules. You&#8217;ll have all the basics, tips, and resources to set up rules that make coding faster and better in Cursor.</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>What are Cursor Rules</h2><p>Cursor Rules are simple files. You create them and they sit in your project folder. Cursor reads this file automatically and follows the instructions you write inside. These rules tell Cursor AI how to behave in your project, so, your generated code stays consistent with your instructions.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5hPh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5hPh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 424w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 848w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 1272w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5hPh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif" width="794" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:794,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:114395,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.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_!5hPh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 424w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 848w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.gif 1272w, https://substackcdn.com/image/fetch/$s_!5hPh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb617dd02-4d2f-42d5-97d3-4f98bea99182_794x443.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><h2>Types of Cursor Rules</h2><p>Cursor supports three types of rules</p><ul><li><p>Project Rules</p></li><li><p>User Rules</p></li><li><p>.cursorrules(legacy)</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_!7VwJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7VwJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 424w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 848w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 1272w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7VwJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif" width="1073" height="515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:1073,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183147,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.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_!7VwJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 424w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 848w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.gif 1272w, https://substackcdn.com/image/fetch/$s_!7VwJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2eef9a27-8a6a-4bd6-ad04-ef14fb535cda_1073x515.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><strong>Project Rules</strong></h4><p><a href="https://docs.cursor.com/context/rules#project-rules">These rules</a> live in your project folder. You put them in <code>.cursor/rules</code> directory. They only work for that specific project. </p><p>File type of Project Rule is .mdc.</p><p>Subdirectories can have their own <code>.cursor/rules</code> directory, specific to that 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_!0kPp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0kPp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 424w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 848w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 1272w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0kPp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png" width="933" height="287" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:287,&quot;width&quot;:933,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:15728,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.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_!0kPp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 424w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 848w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.png 1272w, https://substackcdn.com/image/fetch/$s_!0kPp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d68b231-2bb0-496a-ae8e-4b1b61eeec6f_933x287.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><figcaption class="image-caption"><a href="https://docs.cursor.com/context/rules#nested-rules">Folder Specific Nested Rules</a></figcaption></figure></div><p>You can add these in your Project Rule file:</p><ul><li><p>Write about your project, so the AI knows the context.</p></li><li><p>Add instructions or template code to follow your standards.</p></li><li><p>Set coding style and architecture to keep everything consistent.</p></li></ul><p>Example Project Rule: </p><pre><code>---
description: React component creation
globs: ["**/components/**", "**/pages/**"]
alwaysApply: false
---

- Use functional components with TypeScript
- Always define props interface above component
- Include default export at bottom
- Add JSDoc comments for complex props

@component-template.tsx</code></pre><ul><li><p><code>globs</code> - This has file paths. Rules apply to files in these paths only.</p></li><li><p><code>alwaysApply</code> - Whether to include rule in every AI request or only when working on files that match the globs patterns.</p></li><li><p><code>@component-template.tsx</code> - If you include anything with @, then that file will be used as an additional context.</p></li></ul><p>You can create this Project Rules using either the UI or the command line.<br>We&#8217;ll cover both methods in the upcoming section.</p><h4><strong>User Rules</strong></h4><p><a href="https://docs.cursor.com/context/rules#user-rules">These rules</a> are user-specific rules. Once you set them up in Cursor Settings, they apply to every project you work on.</p><p>User rules do not support. mdc format. They are plain text only. </p><p>User rules are good for personal preferences. </p><p>Example User Rules,</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aJlo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aJlo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 424w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 848w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 1272w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aJlo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png" width="1270" height="556" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:556,&quot;width&quot;:1270,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:55694,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8855eb31-1853-4019-929c-57af1e6da309_1270x556.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_!aJlo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 424w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 848w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.png 1272w, https://substackcdn.com/image/fetch/$s_!aJlo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa470b7f8-c991-4a62-b0ae-86127aea139e_1270x556.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><strong>.cursorrules (Legacy Method)</strong></h4><p>This is the <a href="https://docs.cursor.com/context/rules#cursorrules-legacy">old way of setting up Cursor rules</a>. You create a <code>.cursorrules, </code>a file in your project root. Write your instructions inside this file. Cursor reads it automatically. No setup required.</p><p>Most tutorials online still show this method. But Cursor recommends Project Rules instead.</p><p>Snippet of .cursorrules,</p><pre><code>You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI and Tailwind.
  
  Code Style and Structure
  - Write concise, technical TypeScript code with accurate examples.
  - Use functional and declarative programming patterns; avoid classes.
  - Prefer iteration and modularization over code duplication.
  - Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
  - Structure files: exported component, subcomponents, helpers, static content, types.
  
  Naming Conventions
  - Use lowercase with dashes for directories (e.g., components/auth-wizard).
  - Favor named exports for components.   etc....</code></pre><h4>Project Rules Vs .cursorrules</h4><p>The new Project Rules system gives you more control. You can have multiple rule files. You can target specific folders. You can reference template files.</p><p>With <code>.cursorrules</code>, everything goes in one file. </p><p>If you already have a <code>.cursorrules</code> file, it will keep working. But consider migrating to the new Project Rules method (.mdc format).</p><h4><strong>Which Type Should You Use?</strong></h4><ul><li><p>For project-specific stuff, use Project Rules. </p></li><li><p>For personal preferences that apply everywhere, use User Rules.</p></li><li><p>Skip the legacy <code>.cursorrules</code> file as this will be deprecated soon.</p></li></ul><h2>How to create cursor rules</h2><p>There are two ways you can create cursor rules, </p><ol><li><p>Go to the cursor settings, look for Rules, </p><ol><li><p>For Project Rules:</p><ol><li><p>Click Add Rule near Project Rules. This will create the <code>rule.mdc</code> file inside <code>.cursor/rules</code> folder, where you can type your own instruction. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tuqS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tuqS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 424w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 848w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 1272w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tuqS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png" width="1028" height="883" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:883,&quot;width&quot;:1028,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:81083,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc90c2611-a736-460b-8ed7-dd4d60e440ee_1028x883.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_!tuqS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 424w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 848w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.png 1272w, https://substackcdn.com/image/fetch/$s_!tuqS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F99d5af3e-fd61-45c1-a73d-336061a3bcc9_1028x883.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><li><p>Project Rules have different options available. Pick the right one for your project and add your rules.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iy-z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iy-z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 424w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 848w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 1272w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iy-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png" width="702" height="291" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:291,&quot;width&quot;:702,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23542,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.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_!iy-z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 424w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 848w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.png 1272w, https://substackcdn.com/image/fetch/$s_!iy-z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e4b4717-de1a-40d0-8a2d-f3ec4bf920e6_702x291.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></li><li><p>For User Rules:</p><ol><li><p>You can click Add Rule near User Rules and add your instructions.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Duyy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Duyy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 424w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 848w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 1272w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Duyy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png" width="865" height="236" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:236,&quot;width&quot;:865,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13233,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.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_!Duyy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 424w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 848w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 1272w, https://substackcdn.com/image/fetch/$s_!Duyy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a80dacf-7d55-4231-bbaf-b18932643944_865x236.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ol></li></ol><p></p></li><li><p>Another way to create rules is through the composer chat. Type <code>/</code> and select "Generate Cursor Rules". This creates rules based on your current conversation with Cursor.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!j-Kx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j-Kx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 424w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 848w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 1272w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j-Kx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png" width="293" height="232" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:232,&quot;width&quot;:293,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13162,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.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_!j-Kx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 424w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 848w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 1272w, https://substackcdn.com/image/fetch/$s_!j-Kx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc56e7109-1445-4f64-be3b-d4b4d9093f00_293x232.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li></ol><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-use-cursor-rules?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/how-to-use-cursor-rules?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2>Rule Inheritance</h2><p>Many developers aren&#8217;t aware that Cursor Rules support inheritance.</p><p>Just like classes in programming, you can create a base rule and reference it in other rules.</p><p>Start with a base rule that includes your main instructions. Then, reference this base rule in your other rules to add or override details as needed. This keeps your rules organized and easy to manage.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1Uq0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1Uq0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1Uq0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg" width="1456" height="953" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:953,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:379281,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1Uq0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1Uq0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2436d5e-1bca-42ef-b1ef-9e7d432cb563_2926x1916.jpeg 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><figcaption class="image-caption">Source:- <a href="https://x.com/kregenrek/status/1888347818118852694">Cursor Rules - X</a></figcaption></figure></div><p>The screenshot above shows inheritance working perfectly. Notice how:</p><ul><li><p><code>car.mdc</code> acts as the base template with common structure</p></li><li><p><code>tesla.mdc</code> references <code>@car.mdc</code> and adds Tesla-specific details (Model 3, Electro fuel)</p></li><li><p><code>hyundai.mdc</code> references <code>@car.mdc</code> and adds Hyundai-specific details (Hyundai, Tucson)</p></li></ul><p>When Cursor generates code, it combines the base template with specific overrides. You can see this in the chat panel where it created proper implementations for both Tesla and Hyundai following the same base pattern.</p><p>This approach scales well for large projects. Common patterns stay in one place. Specific variations get their own rules. Your code stays consistent across the entire project.</p><h2>Testing Cursor with and without Rules</h2><p>I tested cursor by building the same project with and without rules.</p><p>Here is what I asked:  "Build a sample dashboard with Next.js and Supabase authentication" </p><p>Without the rule, the code followed older patterns that work for basic cases but lack production-ready features. With the rule, Cursor generated modern, SSR-compatible code following current best practices.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H8K7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H8K7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 424w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 848w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 1272w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H8K7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png" width="1367" height="737" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:737,&quot;width&quot;:1367,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:136007,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.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_!H8K7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 424w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 848w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.png 1272w, https://substackcdn.com/image/fetch/$s_!H8K7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4ee138e-05ff-4f77-9819-1ae95917a86a_1367x737.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>The rule made a significant difference in code quality and approach.</p><ul><li><p>Modern SSR-compatible packages instead of basic client-only setup.</p></li><li><p>Better project structure with organized route groups.</p></li><li><p>More descriptive naming conventions.</p></li><li><p>Proper separation between auth and protected routes.</p></li></ul><h2>Tips for creating best cursor rules</h2><ol><li><p>Start with Project Overview</p><p>Write one or two sentences about your project. What does it do? What type of application is it?</p><pre><code>This is an e-commerce web app built with React and TypeScript. 
It handles online shopping, payment processing, and inventory management.
Use modern React patterns with functional components and hooks.</code></pre></li><li><p>Mention your coding standards</p><p>List the style rules your team follows. Be specific about naming and formatting.</p><pre><code>Code Style Guidelines:

- Use camelCase for variables: `const userName = 'john'`
- Use PascalCase for components: `const UserProfile = () =&gt; {}`
- Always use semicolons and trailing commas
- Prefer const over let, never use var
- Use template literals for string interpolation: `Hello ${name}`</code></pre></li><li><p>Specify your tech stack</p><p>Tell Cursor which libraries and frameworks to suggest. Include the main ones you use daily.</p><pre><code>Tech Stack:

- Frontend: React 18, TypeScript, Tailwind CSS
- Backend: Node.js, Express, Prisma ORM
- Database: PostgreSQL
- State Management: Zustand
- Testing: Jest, React Testing Library
Always import React components like: import { useState } from 'react'</code></pre></li><li><p>Explain your folder structure</p><p>Show Cursor where different types of files go. This helps with imports and organization.</p><pre><code>File Organization:

- src/components/ui/ - Reusable UI components
- src/components/features/ - Feature-specific components  
- src/hooks/ - Custom React hooks
- src/utils/ - Helper functions
- src/services/ - API calls and external integrations
- src/types/ - TypeScript type definitions

Import pattern: import { Button } from '@/components/ui/button'</code></pre></li><li><p>Add performance guidelines</p><p>Include rules that keep your app fast. Mention specific techniques you want used.</p><pre><code>Performance Rules:

- Use React.memo for components that receive stable props
- Implement lazy loading: const LazyComponent = lazy(() =&gt; import('./Component'))
- Optimize images with next/image component
- Use useMemo for expensive calculations:
  const expensiveValue = useMemo(() =&gt; heavyCalculation(data), [data])
- Avoid inline objects in JSX: define outside component or use useMemo</code></pre></li><li><p>Define your testing approach</p><p>Explain how you write tests. Which tools to use and what to test.</p><pre><code>Testing Standards:

- Write unit tests for all utility functions
- Test components with React Testing Library:
  render(&lt;Component /&gt;)
  expect(screen.getByText('Hello')).toBeInTheDocument()
- Use data-testid for complex selectors: &lt;button data-testid="submit-btn"&gt;
- Mock API calls with MSW (Mock Service Worker)
- Aim for 80% coverage on business logic, focus on critical paths</code></pre></li><li><p>Set documentation rules</p><p>Tell Cursor how much documentation you want. When to add comments and what style to use.</p><pre><code>Documentation Guidelines:

- Use JSDoc for all exported functions:
  /**
   * Calculates user discount based on membership tier
   * @param user - User object with membership info
   * @param amount - Purchase amount in cents
   * @returns Discount percentage (0-100)
   */

- Add inline comments for complex business logic
- Include README.md in each major feature directory
- Use TypeScript interfaces for API responses:
  interface ApiResponse&lt;T&gt; { data: T; status: number; message: string }</code></pre></li><li><p>Include error handling patterns</p><p>Show how you want errors managed. Consistent patterns make debugging easier.</p><pre><code>Error Handling Patterns:

- Wrap async operations in try-catch:
  try {
    const data = await fetchUser(id)
    return data
  } catch (error) {
    logger.error('Failed to fetch user', { userId: id, error })
    throw new UserFetchError('Unable to load user data')
  }

- Use React Error Boundaries for component errors
- Create custom error classes: class ValidationError extends Error {}
- Log errors to monitoring service (Sentry/LogRocket)
- Always provide user-friendly error messages in UI</code></pre></li></ol><h2>Use Pre-built Rules</h2><p>You don&#8217;t have to write rules from scratch every time.</p><p><a href="https://cursor.directory/rules">Cursor.directory</a> has pre-built rules for different programming languages and frameworks.</p><p>You can find rules for Python, TypeScript, React, Next.js, and many more. Just copy the ones you need and paste and edit them for your project.</p><p>These community-created rules save you time. They include best practices and common patterns for each technology stack.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!o_PA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o_PA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 424w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 848w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 1272w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o_PA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png" width="1456" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:331556,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.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_!o_PA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 424w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 848w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.png 1272w, https://substackcdn.com/image/fetch/$s_!o_PA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce4246f5-d3be-4c7c-b91e-bae6f7e1f3a1_1908x965.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><figcaption class="image-caption"><a href="https://cursor.directory/rules">cursor.directory rules</a></figcaption></figure></div><p>Another great resource is the <a href="https://github.com/PatrickJS/awesome-cursorrules">awesome-cursorrules GitHub repository</a>. It has curated collection of .cursorrules and .mdc files for different technologies. You&#8217;ll find community-shared rules for frontend, backend, and even mobile projects. These can be copied into your project and used as project rules.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OTJ6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OTJ6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 424w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 848w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 1272w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OTJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png" width="1185" height="691" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:691,&quot;width&quot;:1185,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1207319,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.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_!OTJ6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 424w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 848w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.png 1272w, https://substackcdn.com/image/fetch/$s_!OTJ6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6618faa-93b2-4274-aad2-7a8b79bc9b21_1185x691.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><figcaption class="image-caption"><a href="https://github.com/PatrickJS/awesome-cursorrules">A curated list of awesome .cursorrules files</a></figcaption></figure></div><h4><strong>Add Rules to Your Project with cursor-rules CLI</strong></h4><p>If you want to save more time, you can use the <a href="https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/main/cursor-rules-cli">cursor-rules-CLI</a>.<br>This tool scans your project, figures out what libraries you&#8217;re using, and downloads the matching .mdc rule files directly from awesome-cursorrules.<br>It puts them in your <code>.cursor/rules</code> folder, so Cursor can use them right away.</p><p>Run a single command, and your. cursor<code>/rules</code> folder is set up automatically.</p><pre><code><code>pip install cursor-rules

cursor-rules</code></code></pre><p>You can see below how it works,</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jooB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jooB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 424w, https://substackcdn.com/image/fetch/$s_!jooB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 848w, https://substackcdn.com/image/fetch/$s_!jooB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 1272w, https://substackcdn.com/image/fetch/$s_!jooB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jooB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png" width="1170" height="732" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/301748a3-822c-4e28-bd78-a541c3386003_1170x732.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:732,&quot;width&quot;:1170,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86153,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.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_!jooB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 424w, https://substackcdn.com/image/fetch/$s_!jooB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 848w, https://substackcdn.com/image/fetch/$s_!jooB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.png 1272w, https://substackcdn.com/image/fetch/$s_!jooB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F301748a3-822c-4e28-bd78-a541c3386003_1170x732.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>You can see the rules created under .cursor/rules.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!g_cv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g_cv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 424w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 848w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 1272w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!g_cv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png" width="345" height="196" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:196,&quot;width&quot;:345,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8578,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.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_!g_cv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 424w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 848w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 1272w, https://substackcdn.com/image/fetch/$s_!g_cv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11bbf39c-011e-4440-bc5d-fdba28b63527_345x196.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This cursor-rules CLI is useful when you want to set up rules quickly.</p><h2>Use Cursor Rules to maintain memory: A Developer Technique</h2><p>We can use Cursor Rules to <a href="https://x.com/architjn/status/1912745498672234709">create memory</a> that lasts throughout our project.</p><p>Create a Project Rule (rule.mdc) with the instruction below. Check the <a href="https://gist.githubusercontent.com/architjn/dccec978a5b0d3713b6d77453b6d4a74/raw/e4ff256b6eea26df09802e61e217bcff3be9dbe3/user-memory.mdc">complete rule instruction</a> here.</p><pre><code>## MANDATORY FIRST ACTION

Before responding to ANY request, you MUST:

1. Check if ".remember/memory/self.md" exists
2. Check if ".remember/memory/project.md" exists 
 
3. If they don't exist, CREATE them
4. If they exist, READ them and apply learned knowledge

Ensure Cursor avoids repeating known mistakes by persistently logging corrections and learning. All requests must reference stored knowledge in:
- ".remember/memory/self.md" &#8212; for known mistakes and their fixes
- ".remember/memory/project.md" &#8212; for user preferences and custom rules</code></pre><p>We add a rule that tells Cursor to log preferences and changes in a file, and to refer to these updates every time. So, the memory stays for the whole project.</p><p>Now with this rule attached, let's see how it works in practice. I asked Cursor to build a dashboard with my specific preferences.</p><p>Watch what happens:</p><ul><li><p>Cursor automatically stores my preferences in project.md</p></li><li><p>It remembers every choice I make in real-time</p></li><li><p>The memory files get updated as I work</p></li></ul><p>Here's the first test in action:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5ti3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5ti3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 424w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 848w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 1272w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5ti3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png" width="728" height="384.5" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:769,&quot;width&quot;:1456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:211475,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5ti3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 424w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 848w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.png 1272w, https://substackcdn.com/image/fetch/$s_!5ti3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926825f-8bab-44ea-a980-841ad4e0193a_1916x1012.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>When you change your preferences, the memory system (project.md) is updated right away. Because that's what the rule tells Cursor to do.</p><p>For example, when I said, "I prefer npm over yarn, and I want to use CSS Modules instead of Tailwind."</p><p>Cursor immediately updates the project.md file with my corrected preferences. You can see it changing from yarn to npm and from Tailwind to CSS Modules.</p><p>And this memory file will be checked every time, so your preferences are always followed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VR2B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VR2B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 424w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 848w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 1272w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VR2B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png" width="1456" height="751" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:751,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:293309,&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/166222304?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.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_!VR2B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 424w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 848w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.png 1272w, https://substackcdn.com/image/fetch/$s_!VR2B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0c7b15f-4176-4e27-95e0-90de12949e9e_1912x986.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>This rule-based memory technique works really well in real-time. It stores all your project preferences and updates in files. You can share these files with other developers on your team.</p><p>This creates a shared memory system. No need to train Cursor again for each developer.</p><h2>Conclusion</h2><p>We covered different types of rules and how to set them up. We also saw tips for best rules, some samples and a developer technique for maintaining memory in the project too.</p><p>Always keep personal preferences in User Rules and project-specific guidelines in Project Rules. Try different rules and identify which one works for you.</p><p>It's obvious that with rules, Cursor does the job a lot better. So, try it now.</p><p>Happy learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/how-to-use-cursor-rules?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/how-to-use-cursor-rules?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/how-to-use-cursor-rules?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Ten Must-Know MCP Servers for Every Developer and how to add them in Code Editors]]></title><description><![CDATA[MCP is still a hot topic in the developer community, and I would say it is definitely worth learning.]]></description><link>https://www.devshorts.in/p/ten-must-know-mcp-servers-for-every</link><guid isPermaLink="false">https://www.devshorts.in/p/ten-must-know-mcp-servers-for-every</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 20 Jun 2025 16:30:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5XJ7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>MCP is still a hot topic in the developer community, and I would say it is definitely worth learning. Some might say it is just a function calling with a protocol called MCP, but the real benefits go far beyond traditional tool or function calling.</p><p>MCP Servers are easy to integrate with AI tools and code editors. You don&#8217;t have to build everything from scratch, just pick a prebuilt MCP Server, plug it into AI System, and you are ready to go.  </p><p>You can also build and host them remotely, so others can connect without local setup. They also support OAuth, which means you can build secure, production-ready integrations. MCP is slowly becoming the foundation for how we build with large language models. And honestly, it is just getting started.</p><p>I have written a few articles on MCP already, so feel free to check them out if you want to understand it better.</p><ul><li><p><a href="https://www.devshorts.in/p/how-to-build-your-own-mcp-server">How to build your own MCP Server?</a></p></li><li><p><a href="https://www.devshorts.in/p/how-to-host-your-mcp-server">How to host your MCP Server?</a></p></li><li><p><a href="https://www.devshorts.in/p/how-to-build-an-mcp-client">How to build an MCP Client?</a></p></li></ul><p>I use some MCP servers almost daily, and they help me get things done faster. I thought it is worth sharing them with you all. </p><p>This is not just a random list from the internet. These are servers I actually use and find it useful in my day-to-day work.</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>MCP Servers That Make a Real Difference</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5XJ7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5XJ7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 424w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 848w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 1272w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5XJ7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif" width="913" height="533" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:913,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:171881,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.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_!5XJ7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 424w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 848w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.gif 1272w, https://substackcdn.com/image/fetch/$s_!5XJ7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3feaab-19a4-4a1f-b2c1-82217cab908b_913x533.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><ol><li><p>Filesystem MCP Server</p></li><li><p>GitHub MCP Server</p></li><li><p>Gmail + Google Calendar MCP Server</p></li><li><p>Docker MCP Server</p></li><li><p>Playwright MCP Server</p></li><li><p>Slack MCP Server</p></li><li><p>PostgreSQL MCP Server</p></li><li><p>Netlify MCP Server</p></li><li><p>Notion MCP Server</p></li><li><p>Figma MCP Server</p></li></ol><h2>1. Filesystem MCP Server</h2><p>Many of you might be using tools like Cursor or other AI code editors with a $20 subscription. And on top of that, maybe you are also paying another $20 for Claude Desktop or ChatGPT for general use, right?</p><p>I combined both into a single setup. I turned Claude Desktop into my AI code editor, thanks to the Filesystem MCP Server. One interface now does it all, it works as my code assistant and also as a general-purpose chat tool.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RC2S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RC2S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 424w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 848w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 1272w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RC2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png" width="864" height="345" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:345,&quot;width&quot;:864,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38970,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.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_!RC2S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 424w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 848w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.png 1272w, https://substackcdn.com/image/fetch/$s_!RC2S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4b4d9c3-11c4-4184-b23e-9597aa372783_864x345.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>With the Filesystem MCP Server configured, Claude Desktop can access my local files like an AI editor. It can understand existing projects or build new ones just by giving prompts, since it has direct read/write access to the filesystem.</p></blockquote><p>Here is the Filesystem MCP Server config you can use with Claude, Cursor, or any other AI editor. </p><pre><code><code>{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}</code></code></pre><p>I have explained how to add MCP servers to code editor later in this blog. </p><p>If you want to see how I set it up for Claude Desktop, check this <a href="https://www.devshorts.in/i/155243810/configuring-filesystem-mcp-server">blog post</a>.</p><p>I built a portfolio page using just Claude Desktop and the Filesystem MCP Server, no separate AI editor involved. Claude created the whole project in the folder it could access, using the Filesystem MCP Server.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6f3fe369-0d14-44ad-8fd0-a02d0dc88612&quot;,&quot;duration&quot;:null}"></div><h2>2. GitHub MCP Server</h2><p>GitHub is where most of our code lives. It handles code, pull requests, CI/CD pipelines, and deployments. Now imagine, working on GitHub, directly from the Code Editor or Claude, without switching tabs or leaving your dev workflow.</p><p>Below is the GitHub MCP config.</p><pre><code><code>"github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "your_github_token"
      }
    },</code></code></pre><blockquote><p>With both Filesystem and the GitHub MCP Server in place, I can fork a project, clone it locally, explore the codebase, make changes, and push updates, all without leaving the editor. </p></blockquote><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;ce9ed474-1048-4117-bbc1-ab7f9e8026e5&quot;,&quot;duration&quot;:null}"></div><h2>3. Gmail + Google Calendar MCP Server</h2><p>This one was built by me for my own purpose, and it saves me a lot of time. Because of my nature of work, I need to check emails often. But I do not always want to switch away from what I&#8217;m coding.</p><blockquote><p>Now, while in the mid of coding, I can just ask, "What&#8217;s the latest email I got?"<br>And it shows up right there in the chat. If I need to reply to that email, I can. If I need to send a calendar invite, that&#8217;s doable too. All without leaving the editor. If you want to know how I built this Gmail, GCalendar MCP Server, please check my other <a href="https://www.devshorts.in/i/155243810/build-gmail-gcalendar-mcp-server">MCP Server blog</a>.</p></blockquote><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;ba5801c1-7501-4507-9588-f74299a2cae5&quot;,&quot;duration&quot;:null}"></div><p>Custom MCP Servers like this are very helpful. They are still not widely adopted and not yet part of everyday developer tools. But once you start using them, they really improve your workflow and save time. </p><h2>4. Docker MCP Server</h2><p>I build a lot of SaaS products, both for personal use and as part of my work. Once the code is ready, I usually containerize the application so I can run it easily and consistently across different environments.</p><p>If you are new to Docker, it&#8217;s a tool that lets you package your application along with all its dependencies into a lightweight container. That means you can run your app anywhere without worrying about system setup or config mismatches.</p><blockquote><p>With the Docker MCP Server, I can interact with my containers directly through chat. I can check which containers are running, start or stop them, and even run commands inside them, just from the code editor or Claude desktop.</p></blockquote><p>Here&#8217;s the Docker MCP config. This is actually local Docker, you can also <a href="https://github.com/ckreiling/mcp-server-docker?tab=readme-ov-file#connect-to-docker-over-ssh">connect to remote Docker</a> over SSH.</p><pre><code> "mcp-server-docker": {
      "command": "uvx",
      "args": [
        "mcp-server-docker"
      ]
    } </code></pre><p>Docker MCP Server has many tools like below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a0jL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a0jL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 424w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 848w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 1272w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a0jL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png" width="887" height="538" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:538,&quot;width&quot;:887,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68801,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4511c9e-41ce-4a49-85f6-2d35189e9e66_931x636.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_!a0jL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 424w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 848w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.png 1272w, https://substackcdn.com/image/fetch/$s_!a0jL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83a4f83e-ca3b-4c2d-b0d9-37c54d192fc1_887x538.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>Here&#8217;s how it works. I can start or stop any container, or run any of the listed Docker tools, all from the chat interface.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2m0o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2m0o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 424w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 848w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 1272w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2m0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png" width="810" height="761" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:761,&quot;width&quot;:810,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:142047,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.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_!2m0o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 424w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 848w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.png 1272w, https://substackcdn.com/image/fetch/$s_!2m0o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F769d60f0-43c5-4106-9dad-11aa3e90e74c_810x761.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>5. Playwright MCP Server</h2><p>After we build our products, it&#8217;s important to test the UI and make sure everything works as expected. </p><blockquote><p>I use the Playwright MCP Server to quickly run end-to-end tests without leaving my editor or terminal. I just give a prompt like "Run Playwright tests", and it takes care of the rest.</p></blockquote><p>Playwright MCP Server config detail is below. Check the <a href="https://github.com/microsoft/playwright-mcp">playwright page</a> for more details on how to connect with other Editors.</p><pre><code><code>{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}</code></code></pre><p>It saves a lot of time, especially when I&#8217;m in the middle of development and want to validate UI changes without going through manual steps. This server is helpful when you want to keep testing in your chat interface or code editor without leaving it. </p><p>In the video below, you can see how the Playwright MCP Server fills out the form in UI, checks each field, and validates the whole flow automatically.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;20aabd4b-719e-4d8e-b278-72fc5fd22e14&quot;,&quot;duration&quot;:null}"></div><h2>6. Slack MCP Server</h2><p>Slack is where most of our team conversations happen like dev updates and quick standups. But jumping between Slack and your editor all the time breaks the flow.</p><blockquote><p>With the Slack MCP Server, I can stay in the Editor and still stay updated with my slack messages. I can just ask things like "Check unread messages in #devops" or "Send a message to #release" all from within the same interface where I&#8217;m coding.</p></blockquote><p>Here is the slack MCP Server config details.</p><pre><code><code>"slack-mcp-server": {
                "type": "stdio",
                "command": "npx",
                "args": [
                    "-y",
                    "@modelcontextprotocol/server-slack"
                ],
                "env": {
                    "SLACK_BOT_TOKEN": "XXXX",
                    "SLACK_TEAM_ID": "TXXXX",
                    "SLACK_CHANNEL_IDS": "CXXXX"
                }
            },</code></code></pre><p>To find your Slack team ID, channel ID, or set up the bot token, just check <a href="https://github.com/modelcontextprotocol/servers-archived/tree/main/src/slack#setup">this page</a>. It walks you through everything you need to get started.</p><p>Here&#8217;s a quick example how I used the editor to send a code snippet to the slack channel. It&#8217;s all done right from the editor, no need to copy, switch windows, or break focus.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;2e43dadc-c45f-48ab-9eb2-f187c56503a1&quot;,&quot;duration&quot;:null}"></div><h2>7. PostgreSQL MCP Server</h2><p>PostgreSQL is my local database for most of my SaaS products. Depending on the project, the database may vary. You can always build your own custom MCP Server for any database you work with. </p><p>The default PostgreSQL MCP Server provides read-only access to the database. If you need write access or other operations, you can extend it by adding more tools to the server. </p><p>Here&#8217;s the PostgreSQL MCP Server configuration.</p><pre><code>{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://localhost/mydb"
      ]
    }
  }
}</code></pre><blockquote><p>With this setup, I no longer need to open PGAdmin or any other PostgreSQL client. I can just ask Claude to query the database, explore tables, or summarize the schema, all within the same chat environment.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SsI-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SsI-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 424w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 848w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 1272w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SsI-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png" width="798" height="707" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:707,&quot;width&quot;:798,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62841,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.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_!SsI-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 424w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 848w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.png 1272w, https://substackcdn.com/image/fetch/$s_!SsI-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5328f1-5ac3-49ec-8790-53b810d0b1c1_798x707.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>Things to Keep in Mind When Using PostgreSQL MCP Server with Enterprise Data</h4><h4><strong>Use parameterized queries</strong></h4><p>Always use parameterized queries in MCP Server, when writing to the database. It avoids SQL injection and keeps things safe by making sure only valid data is passed.</p><h4><strong>Keep the server in the same region</strong></h4><p>If your org has data residency rules, host MCP Server in the same region as your database. It helps ensure your data stays compliant and doesn&#8217;t cross regions.</p><h4><strong>Limit access</strong></h4><p>Don&#8217;t give full access to the database. Use a read-only role and only expose the tables you need. This keeps the rest of your data safe.</p><h4><strong>Use OAuth for Remote Servers</strong></h4><p>If you are hosting the server remotely, enable OAuth. It adds secure access control and is becoming a common practice in MCP setups.</p><p>You can also implement network firewalls, audit logging, and connection limits to ensure data security and privacy.</p><h2>8. Netlify MCP Server</h2><p>Once the code is ready, the next step is usually to deploy it. And for many of my quick projects, Netlify is my go-to. By integrating Netlify MCP Server with my code editor, I don&#8217;t even need to open the Netlify dashboard. I just give a prompt like, deploy the app and it is done.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jfR9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jfR9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 424w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 848w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 1272w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jfR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png" width="561" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:561,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:49261,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.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_!jfR9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 424w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 848w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.png 1272w, https://substackcdn.com/image/fetch/$s_!jfR9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1463e5ff-111f-4110-a69e-04e75bf49190_561x590.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>Below is the Netlify MCP Server config details to be added with AI editors or Claude Desktop.</p><pre><code>"netlify": {
                "command": "npx",
                "args": ["-y", "@netlify/mcp"],
                "env": {
                "NETLIFY_PERSONAL_ACCESS_TOKEN": "XXXX"
      }
    }</code></pre><h2>9. Notion MCP Server</h2><p>I use Notion to keep track of all my tasks and project updates. </p><blockquote><p>With the help of Notion MCP Server, I can query my task list or check project notes directly from the editor, without opening Notion. Check the <a href="https://github.com/makenotion/notion-mcp-server?tab=readme-ov-file#installation">Notion MCP Server page</a> to see what setup needs to be done inside Notion, to get this server working.</p></blockquote><p>Below is the Notion MCP Server Config. </p><pre><code>{
  "mcpServers": {
    "notionApi": {
      "command": "npx",
      "args": ["-y", "@notionhq/notion-mcp-server"],
      "env": {
        "OPENAPI_MCP_HEADERS": "{\"Authorization\": \"Bearer ntn_****\", \"Notion-Version\": \"2022-06-28\" }"
      }
    }
  }
}</code></pre><p>Below is a quick snapshot from my editor. I just asked for my Notion tasks, and Copilot pulled them right into the chat. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fR_g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fR_g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 424w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 848w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 1272w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fR_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png" width="1104" height="719" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:719,&quot;width&quot;:1104,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62005,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.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_!fR_g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 424w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 848w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.png 1272w, https://substackcdn.com/image/fetch/$s_!fR_g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d3cede9-7563-42c1-a90b-eb573332750d_1104x719.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>10. Figma MCP Server</h2><p>Being a developer, I often use Figma, for UI/UX design. But I don&#8217;t always want to open the Figma just to inspect a layout or check what colors and fonts are used.</p><blockquote><p>With the Figma MCP Server in place, I can query Figma files directly from my editor or Claude Desktop.</p></blockquote><p>Here&#8217;s the Figma MCP Server config you can add in Claude, VS Code, or Cursor. </p><p>If you are a first-time user and not sure how to generate your Figma API key, I have linked a <a href="https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens">page</a>. It walks you through step by step from generating the token to using it in your MCP config.</p><pre><code>{
  "mcpServers": {
    "Framelink Figma MCP": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "figma-developer-mcp", "--figma-api-key=YOUR-KEY", "--stdio"]
    }
  }
}</code></pre><p>Here&#8217;s a quick example where I asked my editor to list the fill colors used in the design. The Figma MCP Server worked, and the results came right into the chat.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tMBo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tMBo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 424w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 848w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 1272w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tMBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png" width="808" height="636" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:636,&quot;width&quot;:808,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62984,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.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_!tMBo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 424w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 848w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.png 1272w, https://substackcdn.com/image/fetch/$s_!tMBo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1831e8ee-7d0a-42fc-98da-cfcaa5cc66d0_808x636.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>While prompting, you need to refer to the Figma file ID, you can either paste the full Figma URL or just use the file ID from the URL. Both will work.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/ten-must-know-mcp-servers-for-every?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/ten-must-know-mcp-servers-for-every?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><h2>How to add MCP Servers with AI Editors</h2><p>Let&#8217;s talk about integrating MCP Servers with different AI editors. I have tested them with Cursor, VS Code, and Windsurf to see how each editor handles MCP Server integration. </p><p>And yes, some pre-built servers are easy to integrate. Custom servers need a bit of manual setup. But identifying the right MCP servers and integrating with your code Editor once, is definitely worth doing it. Because it will save lot of your time in the long run.</p><h2>MCP Server Integration with cursor:</h2><ol><li><p>Check <a href="https://docs.cursor.com/tools">this page</a> for pre-built MCP servers. Click Add to Cursor, that brings up the popup in Cursor, where you can connect to that MCP Server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YUZZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YUZZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 424w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 848w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 1272w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YUZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png" width="1456" height="739" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:739,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125045,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.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_!YUZZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 424w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 848w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.png 1272w, https://substackcdn.com/image/fetch/$s_!YUZZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F96f9f0cb-e160-4b0c-b461-d297eba8dab2_1892x960.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><li><p>If the MCP Server you are looking for, is not listed in this page, no worries, you can add it manually. Just open <code>mcp.json</code> file and paste MCP server config in this file.</p><pre><code>C:\Users\your-username\.cursor\mcp.json</code></pre></li><li><p>Another Option is, paste the MCP Server config in <a href="https://docs.cursor.com/deeplinks#generate-install-link">this link</a>, and copy deep link or web link. Open the deep link a new tab. It will launch Cursor and ask if you want to add the server.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z2ry!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z2ry!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 424w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 848w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 1272w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z2ry!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png" width="952" height="687" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:687,&quot;width&quot;:952,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65226,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.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_!z2ry!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 424w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 848w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.png 1272w, https://substackcdn.com/image/fetch/$s_!z2ry!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb309a2b7-ddcd-4ed7-9ffd-dcfca585ccfc_952x687.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><li><p>If you are adding a custom MCP Server, you can either update the same <code>mcp.json</code> file directly or go to Cursor settings &#8594; MCP Tools &#8594; Add MCP Server and paste the config there.</p></li></ol><p>Here is a look at the servers and tools currently loaded in my Cursor setup. You will notice a warning about tool limits. It is best to keep it under 42 tools, as loading too many may not be supported by the models.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yOD_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yOD_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 424w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 848w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 1272w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yOD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png" width="1204" height="592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:1204,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:112071,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.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_!yOD_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 424w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 848w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.png 1272w, https://substackcdn.com/image/fetch/$s_!yOD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ea87cac-e0b9-4edd-b285-eeb5b0db6156_1204x592.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>Tools and servers are not the same thing. A <a href="http://Tools">tool</a> is just a function inside an MCP Server that does the actual work. One MCP Server can expose multiple tools. For example, the Filesystem MCP Server includes tools like read_file, write_file, and more.</p></blockquote><h2>MCP Server Integration with windsurf</h2><ol><li><p>Add pre-built MCP servers to windsurf with just few clicks like below.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-y3e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-y3e!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 424w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 848w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 1272w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-y3e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png" width="1456" height="776" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f303612a-8999-4432-9629-fb0878ebf267_1917x1022.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:776,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210232,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.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_!-y3e!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 424w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 848w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.png 1272w, https://substackcdn.com/image/fetch/$s_!-y3e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff303612a-8999-4432-9629-fb0878ebf267_1917x1022.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><li><p>To add custom MCP servers, edit the mcp_config.json file with custom  MCP server configuration.</p><pre><code><code>C:\Users\user_name\.codeium\windsurf\mcp_config.json</code></code></pre></li></ol><p>Once added, we can see these tools appear in Windsurf under the configured plugins.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Kax!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Kax!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 424w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 848w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 1272w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Kax!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png" width="1083" height="650" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:650,&quot;width&quot;:1083,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:181725,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.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_!3Kax!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 424w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 848w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.png 1272w, https://substackcdn.com/image/fetch/$s_!3Kax!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb1389930-4ec4-46e1-9787-dbdd5a233634_1083x650.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>MCP Server Integration with VSCode</h2><p>VS Code also supports MCP, though it's not enabled by default.</p><ol><li><p>Press Ctrl + Shift + P and open settings.</p></li><li><p>Search for <code>chat.mcp.enabled</code> and turn it on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BNn8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BNn8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 424w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 848w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 1272w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BNn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png" width="1297" height="366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:366,&quot;width&quot;:1297,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37111,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.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_!BNn8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 424w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 848w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.png 1272w, https://substackcdn.com/image/fetch/$s_!BNn8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feba2b4df-dcc9-4e8a-a3fa-ddfe81aa0a6a_1297x366.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><li><p>Now Switch to Agent Mode, go to Add Tools, and choose Add MCP Server,</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bqZd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bqZd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 424w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 848w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 1272w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bqZd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png" width="1456" height="774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119997,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.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_!bqZd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 424w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 848w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.png 1272w, https://substackcdn.com/image/fetch/$s_!bqZd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5a065f6-07c1-4dd7-b85f-513ac61294b2_1912x1017.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_!ekHJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ekHJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 424w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 848w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 1272w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ekHJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png" width="801" height="157" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec1947e9-3f8f-428d-9a15-872129b16104_801x157.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:157,&quot;width&quot;:801,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6409,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.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_!ekHJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 424w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 848w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 1272w, https://substackcdn.com/image/fetch/$s_!ekHJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec1947e9-3f8f-428d-9a15-872129b16104_801x157.png 1456w" sizes="100vw" loading="lazy"></picture><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_!2Zpw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2Zpw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 424w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 848w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 1272w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2Zpw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png" width="734" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:184,&quot;width&quot;:734,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23498,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&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/165114685?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.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_!2Zpw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 424w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 848w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 1272w, https://substackcdn.com/image/fetch/$s_!2Zpw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F249f6896-6f14-4a4c-bf62-81e2f9398644_734x184.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div></li><li><p>You can add both local and remote MCP Servers here. These entries are saved in your <code>settings.json</code> file. Once added, your tools will show up in the MCP tools list.</p></li><li><p>If you prefer not to go through the UI, you can directly open the <code>settings.json</code> file at "<code>C:\Users\xxxx\AppData\Roaming\Code\User\settings.json</code>"<br>and manually add the MCP Server configurations there. VS Code will pick them up from that file.</p></li></ol><h2>Wrapping It Up</h2><p>If you&#8217;ve made it this far, you probably get why I&#8217;m excited about MCP Servers. </p><p>They are not just some new protocol trend, they actually solve real problems. You don&#8217;t need to be a power user to get started. Pick one or two servers that match your workflow, maybe Filesystem or GitHub and try wiring them up with Claude, Cursor, or your favorite editor. You will see the difference. </p><p>And the best part? You can always build your own MCP Server. That&#8217;s where the real fun begins.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/ten-must-know-mcp-servers-for-every?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/ten-must-know-mcp-servers-for-every?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/ten-must-know-mcp-servers-for-every?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>