<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>DeepakNess - Everything</title>
  <subtitle>Blog posts and raw notes in one feed.</subtitle>
  <link href="https://deepakness.com/feed/archive.xml" rel="self" />
  <link href="https://deepakness.com/archive/" />
  <updated>2026-08-11T03:20:54Z</updated>
  <id>https://deepakness.com/archive/</id>
  <icon>https://deepakness.com/img/deepakness.png</icon>
  <logo>https://deepakness.com/img/deepakness.png</logo>
  <author>
    <name>DeepakNess</name>
  </author><entry>
    <title>Claude will watermark AI-generated content</title>
    <link href="https://deepakness.com/raw/claude-ai-watermarks/" />
    <updated>2026-08-11T03:20:54Z</updated>
    <id>https://deepakness.com/raw/claude-ai-watermarks/</id>
    <summary>Claude will add invisible watermarks to generated text and provenance metadata to supported files.</summary>
    <content type="html">&lt;p&gt;Anthropic says supported Claude models will add &lt;a href=&quot;https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;imperceptible watermarks&lt;/a&gt; to generated text. The watermark is part of the text itself, so it can travel with copied text and can even survive some editing.&lt;/p&gt;
&lt;p&gt;For supported images and other files, Claude will attach signed C2PA provenance metadata instead. Anthropic says detection tools and technical details are still to come, and these marks are signals rather than perfect proof of origin.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;How Claude will watermark generated texts&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/claude-ai-watermarks/how-claude-marks-text.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I am not sure how this works, but I think it might work &lt;a href=&quot;https://arxiv.org/abs/2305.08883&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;based on this paper&lt;/a&gt;. And this is similar to &lt;a href=&quot;https://deepmind.google/models/synthid/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google&#39;s SynthID&lt;/a&gt; that also embeds imperceptible watermarks in AI-generated content.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Pi agent is just better</title>
    <link href="https://deepakness.com/raw/pi-is-just-better/" />
    <updated>2026-08-10T16:26:56Z</updated>
    <id>https://deepakness.com/raw/pi-is-just-better/</id>
    <summary>Composio benchmarked 8 agent harnesses on DeepSeek V4 Flash and Pi agent came out on top on pass rate and cost.</summary>
    <content type="html">&lt;p&gt;Composio ran DeepSeek V4 Flash through 8 agent harnesses on 30 agentic tasks, and &lt;a href=&quot;https://x.com/composio/status/2086814488162972027&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;as per the report&lt;/a&gt; Pi agent came out on top in almost every metric. Here is the leaderboard for tasks passed.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Tasks passed across all 8 agent harnesses on DeepSeek V4 Flash&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/pi-is-just-better/composio-passed.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Pi agent passed 20 of 30 tasks, 3 more than the next best harness (Oh My Pi at 17). Claude Code, Codex, and Deep Agents tied at 16, and the rest were at 14-15.&lt;/p&gt;
&lt;p&gt;Cost per successful task is where Pi pulls ahead the most. It came in at $0.028, the cheapest of all 8 harnesses, while Claude Code at the other end cost $0.195, almost 7x more. Pi&#39;s median time per task was 132 seconds, only Claude Code and OpenCode were slightly faster.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cost per successful task across all 8 agent harnesses&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/pi-is-just-better/composio-cost.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;The same model delivered 47-67% task success, cost $0.019-$0.104 per task, and took 122-272 seconds median time, depending on the harness. Their closing point is a good one. Benchmark the model-harness pair you will actually use, not the model in isolation.&lt;/p&gt;
&lt;p&gt;Nice to see Pi win a third party eval like this, since I run &lt;a href=&quot;https://deepakness.com/blog/pi-agent-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pi with DeepSeek as my default setup&lt;/a&gt; anyway.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Kapture Fast – one-click screenshot to clipboard</title>
    <link href="https://deepakness.com/raw/kapture-fast/" />
    <updated>2026-08-10T03:22:51Z</updated>
    <id>https://deepakness.com/raw/kapture-fast/</id>
    <summary>Built a tiny Chrome extension that captures the visible tab and copies it to the clipboard in one click, with no network calls or analytics.</summary>
    <content type="html">&lt;p&gt;I built a tiny Chrome extension called &lt;a href=&quot;https://github.com/deepakness/kapture-fast&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Kapture Fast&lt;/a&gt; that captures the visible part of a tab and copies it to the clipboard in one click. Just click the toolbar icon or right-click the page and pick &amp;quot;Copy screenshot to clipboard&amp;quot;.&lt;/p&gt;
&lt;p&gt;It only captures the visible viewport, not the full page. A checkmark flashes on the icon when it works, and on failure a &lt;code&gt;!&lt;/code&gt; badge shows the reason on hover.&lt;/p&gt;
&lt;p&gt;It needs just four permissions, no network requests, no analytics, and the screenshot never leaves the machine. Open source under MIT, load it unpacked from the repo in about a minute.&lt;/p&gt;
&lt;p&gt;This is another Chrome extension I&#39;ve shipped after &lt;a href=&quot;https://deepakness.com/raw/minimal-x-2-0/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;the Minimal X cleanup extension&lt;/a&gt;, and I&#39;ve been using it daily.&lt;/p&gt;
&lt;p&gt;Once the screenshot is in the clipboard, I paste it on socials, drop it into chats while vibe coding, or &lt;a href=&quot;https://deepakness.com/raw/save-clipboard-image-macos/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;save it on macOS&lt;/a&gt; when I need it as a file.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Cursor Pro and SuperGrok usage comparison</title>
    <link href="https://deepakness.com/raw/cursor-pro-supergrok/" />
    <updated>2026-08-10T02:20:47Z</updated>
    <id>https://deepakness.com/raw/cursor-pro-supergrok/</id>
    <summary>Which subscription gets you the most usage – Cursor Pro ($20/mo) or SuperGrok ($30/mo)?</summary>
    <content type="html">&lt;p&gt;I had this question that which subscription is more value for money when using the Grok 4.5 model – Cursor Pro ($20/mo) or SuperGrok ($30/mo). And I just came across &lt;a href=&quot;https://x.com/MiaAI_lab/status/2086576283211710957&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this post on X&lt;/a&gt; that does a comparison between the both.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor Pro vs. SuperGrok&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/cursor-pro-supergrok/cursor-pro-vs-supergrok.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Here, I have created a comparison table to better understand the usage these subscriptions get you.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Subscription&lt;/th&gt;
&lt;th&gt;Price&lt;/th&gt;
&lt;th&gt;Tokens per month&lt;/th&gt;
&lt;th&gt;Tokens per $&lt;/th&gt;
&lt;th&gt;Value advantage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cursor Pro&lt;/td&gt;
&lt;td&gt;$20/mo&lt;/td&gt;
&lt;td&gt;716,077,180&lt;/td&gt;
&lt;td&gt;35,803,859&lt;/td&gt;
&lt;td&gt;Better value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SuperGrok&lt;/td&gt;
&lt;td&gt;$30/mo&lt;/td&gt;
&lt;td&gt;987,902,940&lt;/td&gt;
&lt;td&gt;32,930,098&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Basically, if you consider the $10 price difference between the two, Cursor gets you ~8.73% more tokens than SuperGrok.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;tl;dr – Cursor Pro is better than Grok.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have used Cursor previously, and currently using SuperGrok, but since &lt;a href=&quot;https://deepakness.com/raw/supergrok-3-months/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;I availed their promotional offer&lt;/a&gt; of $30 for 3 months (i.e., $10/mo), SuperGrok is better value for money for me right now.&lt;/p&gt;
</content>
  </entry><entry>
    <title>How &#39;keep reading&#39; picks related posts now</title>
    <link href="https://deepakness.com/raw/keep-reading-matching/" />
    <updated>2026-08-09T17:36:38Z</updated>
    <id>https://deepakness.com/raw/keep-reading-matching/</id>
    <summary>Reworked the related-entry matching under posts and notes so it weighs rare tags, title similarity, and internal links instead of just counting shared tags.</summary>
    <content type="html">&lt;p&gt;The &amp;quot;keep reading&amp;quot; block under every post and note used to pick its suggestions by counting shared tags. Most matches won.&lt;/p&gt;
&lt;p&gt;That sounds reasonable until you look at my tags. The &lt;code&gt;ai&lt;/code&gt; tag alone sits on 186 of my 637 posts and notes, so sharing it counted for as much as sharing something rare like &lt;code&gt;hetzner&lt;/code&gt;. Hundreds of candidates tied at one shared tag, the tiebreakers collapsed, and the sort quietly turned into &amp;quot;show the newest thing tagged ai&amp;quot;.&lt;/p&gt;
&lt;p&gt;Three things stood out when I finally measured it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;289 entries had never shown up as a suggestion anywhere on the site&lt;/li&gt;
&lt;li&gt;one note about my terminal config was sitting on 113 pages&lt;/li&gt;
&lt;li&gt;most entries were getting three suggestions instead of five&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So now it scores every pair of entries instead of sorting them, and four things feed that score.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;shared tags, weighted so rare ones count for more than common ones&lt;/li&gt;
&lt;li&gt;how similar the titles and descriptions are&lt;/li&gt;
&lt;li&gt;internal links, counted both ways, so linking A to B also points B back at A&lt;/li&gt;
&lt;li&gt;recency, but only enough to break ties&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The title matching did most of the heavy lifting here. Around 40% of my entries carry a single tag, so tags were never going to say much about them, but titles always do. The &lt;a href=&quot;https://deepakness.com/blog/adding-internal-links-in-old-posts/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;internal links I add by hand&lt;/a&gt; turned out to be the most trustworthy signal of the lot.&lt;/p&gt;
&lt;p&gt;Where it landed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;every entry now gets a full five suggestions&lt;/li&gt;
&lt;li&gt;entries that never surfaced dropped from 289 to 36&lt;/li&gt;
&lt;li&gt;nothing appears on more than 20 pages anymore&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I can also pin suggestions from the frontmatter now, where scoring fills whatever slots are left.&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;related&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; /blog/some&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;post/
&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; /raw/some&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;note/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It all runs once at build time instead of per page, so the build did not get any slower. I had &lt;a href=&quot;https://deepakness.com/raw/updated-footer/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;reorganized this block once before&lt;/a&gt;, and this time it is the matching underneath that got fixed.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Just learned that Ahrefs DR API is free</title>
    <link href="https://deepakness.com/raw/ahrefs-dr-api/" />
    <updated>2026-08-09T15:00:04Z</updated>
    <id>https://deepakness.com/raw/ahrefs-dr-api/</id>
    <summary>I just got to know that Ahrefs has a free API that returns DR (Domain Rating) for domains, and it&#39;s completely free to use.</summary>
    <content type="html">&lt;p&gt;I just got to know that &lt;a href=&quot;https://docs.ahrefs.com/en/api/reference/public/get-domain-rating-free&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Ahrefs has a free API&lt;/a&gt; that returns DR (Domain Rating) for domains, and it&#39;s completely free to use. You do require a free API key and requests do not consume any API units.&lt;/p&gt;
&lt;p&gt;I tested it for &lt;code&gt;deepakness.com&lt;/code&gt; with a free API key, and DR comes out to be &lt;code&gt;46&lt;/code&gt;, as you see in the response below.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token string&quot;&gt;&quot;https://api.ahrefs.com/v3/public/domain-rating-free?target=deepakness.com&amp;amp;output=json&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Actual response:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;domain_rating&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;domain_rating&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;46.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;license&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;http://ahrefs.com/legal/domain-rating-license&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Unauthenticated calls still work today but return a deprecation warning as they now return 401 unless you send the free key. If you use the data, Ahrefs requires attribution as &amp;quot;Domain Rating by Ahrefs&amp;quot; with a link to &lt;a href=&quot;https://ahrefs.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ahrefs.com&lt;/a&gt;, under their &lt;a href=&quot;http://ahrefs.com/legal/domain-rating-license&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Domain Rating License&lt;/a&gt; program.&lt;/p&gt;
&lt;p&gt;I liked this because this can be used for analyzing domains in bulk and then there can be other interesting usage as well.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Pi agent supports Mermaid diagrams now</title>
    <link href="https://deepakness.com/raw/pi-mermaid-support/" />
    <updated>2026-08-07T14:11:46Z</updated>
    <id>https://deepakness.com/raw/pi-mermaid-support/</id>
    <summary>From the new v0.84.0, the Pi agent has now started supporting Mermaid diagrams directly inside the terminal.</summary>
    <content type="html">&lt;p&gt;From the new v0.84.0 update, the Pi coding agent has now started supporting Mermaid diagrams natively. The agent can now show a preview of the diagram directly inside the terminal you&#39;re using, as you see below.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Pi agent Mermaid diagram preview in terminal&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/pi-mermaid-support/mermaid-diagram-preview.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s turned on by default when you update to the &lt;a href=&quot;https://pi.dev/news/releases/0.84.0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;new 0.84.0 version&lt;/a&gt; by running the &lt;code&gt;pi update --all&lt;/code&gt; command. It&#39;s set to &lt;code&gt;streaming&lt;/code&gt; as you see below, but you can turn it off or change it to &lt;code&gt;final&lt;/code&gt; as well, and you can learn about it more &lt;a href=&quot;https://pi.dev/docs/latest/settings#markdown&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;from the docs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Mermaid diagram related settings in Pi agent&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/pi-mermaid-support/mermaid-settings-in-pi.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I think, this is a nice addition to the agent as it helps users visualize complex ideas in a better way. If you see the first diagram above, that is basically the entire architecture of deepakness.com.&lt;/p&gt;
&lt;p&gt;Apart from this, loved the new &lt;code&gt;fullscreen&lt;/code&gt; TUI mode that you &lt;a href=&quot;https://pi.dev/docs/latest/settings#ui-display&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;can turn on&lt;/a&gt; from the settings. It keeps the text-box pinned at the bottom when you scroll, it&#39;s very useful.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Removing webmentions from this site</title>
    <link href="https://deepakness.com/raw/removing-webmentions/" />
    <updated>2026-08-07T04:20:55Z</updated>
    <id>https://deepakness.com/raw/removing-webmentions/</id>
    <summary>I removed webmentions from deepakness.com because they were not adding much value and the UI under posts felt messy.</summary>
    <content type="html">&lt;p&gt;I removed webmentions from this site entirely today.&lt;/p&gt;
&lt;p&gt;How the setup worked (receiving via webmention.io + Bridgy, sending via webmention.app, Eleventy fetch at build time, UI under posts) is already &lt;a href=&quot;https://deepakness.com/blog/adding-webmentions/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;written up in an earlier post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I removed them because they were not adding much value, and the UI below posts felt messy. Email and Mastodon CTAs already cover how to reply, and the webmention block mostly cluttered the bottom of posts without making the site better to use.&lt;/p&gt;
&lt;p&gt;What still shows under posts and notes is Comment via Email, and Comment on Mastodon when a post has a status URL.&lt;/p&gt;
&lt;p&gt;By the way, I am not against the webmention protocol. But just clean slate for now; the implementation post is enough if I ever rebuild it.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Parakeet Unified EN 0.6B model in Handy is great</title>
    <link href="https://deepakness.com/raw/handy-new-model/" />
    <updated>2026-08-06T00:00:00Z</updated>
    <published>2026-08-06T05:04:29Z</published>
    <id>https://deepakness.com/raw/handy-new-model/</id>
    <summary>The Parakeet Unified EN 0.6B model in the Handy app makes local speech-to-text transcription faster, more accurate, and much better than earlier models.</summary>
    <content type="html">&lt;p&gt;Recently, a new model called &lt;a href=&quot;https://huggingface.co/nvidia/parakeet-unified-en-0.6b&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Parakeet Unified EN 0.6B&lt;/a&gt; appeared in the &lt;a href=&quot;https://handy.computer/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Handy&lt;/a&gt; app. When I wrote about finding the &lt;a href=&quot;https://deepakness.com/raw/local-speech-to-text-app/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;best local speech-to-text app&lt;/a&gt;, I was using Parakeet v3, which was already great. But this new Unified EN 0.6B model is on another level.&lt;/p&gt;
&lt;p&gt;It is significantly faster and much more accurate than the earlier models. The latency drop is immediately noticeable, and words appear almost instantly as you speak, with virtually zero delay. I am running it on an M2 MacBook Air with 16 GB RAM, and it works flawlessly without slowing down the system.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Handy app running Parakeet Unified EN 0.6B model&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/handy-new-model/handy-parakeet-model.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Punctuation, capitalization, and technical terms are also handled much better.&lt;/p&gt;
</content>
  </entry><entry>
    <title>My cmux terminal config and themes setup</title>
    <link href="https://deepakness.com/raw/cmux-config/" />
    <updated>2026-08-08T00:00:00Z</updated>
    <published>2026-08-06T02:04:05Z</published>
    <id>https://deepakness.com/raw/cmux-config/</id>
    <summary>A quick breakdown of how terminal themes, keybindings, and settings are saved and configured in cmux.</summary>
    <content type="html">&lt;p&gt;After &lt;a href=&quot;https://deepakness.com/raw/using-kero/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;trying the Kero terminal&lt;/a&gt; for a few days, I came back to &lt;a href=&quot;https://cmux.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;cmux&lt;/a&gt; and audited how it handles configurations and themes so I can quickly restore everything if I ever reinstall or move to a new Mac.&lt;/p&gt;
&lt;p&gt;Because cmux uses Ghostty as its underlying terminal rendering engine, terminal styling is separate from cmux app settings, and here&#39;s how it looks on my computer.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;My cmux terminal setup&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/cmux-config/my-cmux-setup.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;Terminal visual theme &amp;amp; fonts&lt;/strong&gt; live inside the Ghostty config file:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;~/Library/Application Support/com.mitchellh.ghostty/config.ghostty&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This is also symlinked to &lt;code&gt;~/.config/ghostty/config&lt;/code&gt;. It uses the built-in GitHub Dark Default theme, Fira Code ligatures (&lt;code&gt;+calt&lt;/code&gt;, &lt;code&gt;+zero&lt;/code&gt;, &lt;code&gt;+ss01&lt;/code&gt;), font thickening, a 50,000-line scrollback buffer, and clipboard auto-copy on select.&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;cmux app settings &amp;amp; shortcuts&lt;/strong&gt; live in the main cmux config file:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;~/.config/cmux/cmux.json&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This configures &lt;code&gt;preferredEditor: &amp;quot;code&amp;quot;&lt;/code&gt;, &lt;code&gt;commandPaletteSearchesAllSurfaces: true&lt;/code&gt;, matching sidebar background blending (&lt;code&gt;matchTerminalBackground: true&lt;/code&gt;), minimal mode, pane split shortcuts (&lt;code&gt;cmd + d&lt;/code&gt;), sidebar toggle (&lt;code&gt;cmd + b&lt;/code&gt;), and agent notification hooks.&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Active workspaces &amp;amp; open tabs&lt;/strong&gt; live in the session state file:&lt;/p&gt;
&lt;pre class=&quot;language-text&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;~/Library/Application Support/cmux/session-com.cmuxterm.app.json&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here is the exact &lt;code&gt;config.ghostty&lt;/code&gt; content for the terminal theme and font:&lt;/p&gt;
&lt;pre class=&quot;language-ini&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-ini&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# Theme (GitHub Dark Default, built into Ghostty)&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;theme&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;GitHub Dark Default&lt;/span&gt;

&lt;span class=&quot;token key attr-name&quot;&gt;font-family&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;&quot;&lt;span class=&quot;token inner-value&quot;&gt;Fira Code&lt;/span&gt;&quot;&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;font-size&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;14&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;font-feature&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;+calt&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;font-feature&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;+zero&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;font-feature&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;+ss01&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;font-thicken&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;true&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Scrollback&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;scrollback-limit&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;50000&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Window&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;window-padding-x&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;window-padding-y&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;window-padding-balance&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;window-inherit-working-directory&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;true&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Cursor&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;cursor-style&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;bar&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;cursor-style-blink&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;false&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Mouse &amp;amp; Clipboard&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;mouse-hide-while-typing&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;true&lt;/span&gt;
&lt;span class=&quot;token key attr-name&quot;&gt;copy-on-select&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token value attr-value&quot;&gt;clipboard&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For quick CLI interaction, I added these productivity aliases to &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-zsh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-zsh&quot;&gt;alias cm-diff=&quot;cmux diff --source unstaged&quot;
alias cm-diff-staged=&quot;cmux diff --source staged&quot;
alias cm-md=&quot;cmux markdown&quot;
alias cm-browser=&quot;cmux browser open&quot;
alias cm-jump=&quot;cmux jump-to-unread&quot;
alias cm-status=&quot;cmux list-status&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Also, cmux automatically creates timestamped backups of &lt;code&gt;cmux.json&lt;/code&gt; inside &lt;code&gt;~/.config/cmux/&lt;/code&gt; whenever settings are saved (like &lt;code&gt;cmux.json.bak.20260722T055253&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;If I ever reinstall cmux or move to a new Mac, I just need to recreate the folders and restore those files:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-p&lt;/span&gt; ~/.config/cmux ~/.config/ghostty ~/Library/Application&lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt; Support/com.mitchellh.ghostty
&lt;span class=&quot;token function&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-sf&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;~/Library/Application Support/com.mitchellh.ghostty/config.ghostty&quot;&lt;/span&gt; ~/.config/ghostty/config&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because these files sit in standard macOS user directories rather than inside the &lt;code&gt;.app&lt;/code&gt; bundle, simply uninstalling &lt;code&gt;cmux.app&lt;/code&gt; leaves all themes, sessions, and shortcuts completely safe and intact.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Fix &#39;AI: Out of credits&#39; in Antigravity CLI footer</title>
    <link href="https://deepakness.com/raw/fix-antigravity-out-of-credits-footer/" />
    <updated>2026-08-05T18:15:01Z</updated>
    <id>https://deepakness.com/raw/fix-antigravity-out-of-credits-footer/</id>
    <summary>If the &#39;AI: Out of credits&#39; warning keeps coming back in your agy CLI status line every time you open it, here&#39;s how to turn it off permanently.</summary>
    <content type="html">&lt;p&gt;If you use the Antigravity CLI via &lt;code&gt;agy&lt;/code&gt;, you might notice an &lt;strong&gt;&amp;quot;AI: Out of credits&amp;quot;&lt;/strong&gt; warning in the status bar footer.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;AI Out of credits error in Antigravity CLI footer&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/fix-antigravity-out-of-credits-footer/antigravity-out-of-credits.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Toggling &amp;quot;Use AI Credits&amp;quot; off via &lt;code&gt;/config&lt;/code&gt; inside the CLI fixes it temporarily, but every time you exit and reopen &lt;code&gt;agy&lt;/code&gt;, it automatically turns back on and the error message shows up again.&lt;/p&gt;
&lt;p&gt;This happens because changing the setting in the CLI UI only updates the active session, while the persistent global config file keeps &lt;code&gt;&amp;quot;useAiCredits&amp;quot;: true&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To turn it off permanently:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open &lt;code&gt;~/.gemini/config/config.json&lt;/code&gt; in your text editor.&lt;/li&gt;
&lt;li&gt;Locate &lt;code&gt;&amp;quot;useAiCredits&amp;quot;&lt;/code&gt; under &lt;code&gt;userSettings&lt;/code&gt; and change it to &lt;code&gt;false&lt;/code&gt;, something like this:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;userSettings&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;useAiCredits&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;(Optional) You can also open &lt;code&gt;~/.gemini/antigravity-cli/settings.json&lt;/code&gt; and add &lt;code&gt;&amp;quot;useAiCredits&amp;quot;: false&lt;/code&gt; there.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Save the file and restart &lt;code&gt;agy&lt;/code&gt; and the warning won&#39;t appear in the footer anymore.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Using Opus 5 &#39;Low&#39; is better than expected</title>
    <link href="https://deepakness.com/raw/opus-5-low/" />
    <updated>2026-08-05T16:24:09Z</updated>
    <id>https://deepakness.com/raw/opus-5-low/</id>
    <summary>I never used any model in Claude Code below Extra High effort, but Opus 5 on Low is now my default and I&#39;m barely missing anything.</summary>
    <content type="html">&lt;p&gt;On and off, I have been using Claude Code &lt;a href=&quot;https://deepakness.com/ai/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;for several months&lt;/a&gt;, and in all that time I never ran any model below &lt;code&gt;Extra High&lt;/code&gt; effort. It always felt like if I use with lower effort, the model will mess up with my existing code. Even when &lt;a href=&quot;https://deepakness.com/raw/opus-5-first-impressions/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Opus 5 launched&lt;/a&gt;, I kept it at &lt;code&gt;Max&lt;/code&gt; without thinking twice.&lt;/p&gt;
&lt;p&gt;For the last few days, I&#39;ve been running Opus 5 at &lt;code&gt;Low&lt;/code&gt; instead, and I&#39;m loving it so far. It&#39;s faster, and it consumes noticeably fewer tokens. I&#39;m working on a huge project right now, so not running out of limits halfway through the day matters a lot more to me than squeezing out the last bit of reasoning.&lt;/p&gt;
&lt;p&gt;Claude Code is the tool I use almost entirely for &lt;a href=&quot;https://deepakness.com/ai/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;frontend and design work&lt;/a&gt;, and that&#39;s where this holds up best. For UI design work, the difference between the higher efforts and &lt;code&gt;Low&lt;/code&gt; is negligible – I can&#39;t really tell which one wrote the component. Higher effort now feels like overkill for most of what I do day to day.&lt;/p&gt;
&lt;p&gt;So my default has flipped. I start at &lt;code&gt;Low&lt;/code&gt; and only bump the effort, to &lt;code&gt;Medium&lt;/code&gt; or &lt;code&gt;High&lt;/code&gt; but almost never to &lt;code&gt;Extra High&lt;/code&gt; or &lt;code&gt;Max&lt;/code&gt; up when a task actually asks for it, like a tricky bug or a change spanning a lot of files.&lt;/p&gt;
</content>
  </entry><entry>
    <title>SharePDF crosses 400 users</title>
    <link href="https://deepakness.com/raw/sharepdf-400-users/" />
    <updated>2026-08-04T09:32:09Z</updated>
    <id>https://deepakness.com/raw/sharepdf-400-users/</id>
    <summary>SharePDF now has more than 400 users, and tens of new users are signing up every week.</summary>
    <content type="html">&lt;p&gt;SharePDF has now crossed 400 users and tens of new users are signing up every week. The rate varies as per different weeks of the month, but it&#39;s growing consistently.&lt;/p&gt;
&lt;p&gt;The MRR is currently at $37.33 and I am very happy with the progress.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Replacing n8n with a local script for Typefully drafts</title>
    <link href="https://deepakness.com/raw/typefully-local-sync/" />
    <updated>2026-08-05T00:00:00Z</updated>
    <published>2026-08-04T01:36:02Z</published>
    <id>https://deepakness.com/raw/typefully-local-sync/</id>
    <summary>How I replaced n8n workflows with a lightweight local script to draft blog posts and raw notes to Typefully automatically.</summary>
    <content type="html">&lt;p&gt;I previously wrote about &lt;a href=&quot;https://deepakness.com/blog/publish-fast/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;how I publish blog posts and notes so fast&lt;/a&gt;, where I mentioned using simple terminal scripts and background automations to remove friction. One part of that workflow was an &lt;a href=&quot;https://deepakness.com/raw/typefully-api-n8n/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;n8n automation connecting RSS feeds to Typefully&lt;/a&gt; to automatically draft new posts to social media.&lt;/p&gt;
&lt;p&gt;While n8n worked, it relied on polling RSS feeds after Netlify finished deploying, and didn&#39;t give me fine-grained control over which social platforms a specific post should go to.&lt;/p&gt;
&lt;p&gt;So I replaced the n8n setup with a small Node.js script &lt;code&gt;scripts/sync-typefully.js&lt;/code&gt; built directly into my existing &lt;code&gt;pnpm blog:push&lt;/code&gt; and &lt;code&gt;pnpm raw:push&lt;/code&gt; workflow commands.&lt;/p&gt;
&lt;p&gt;Here&#39;s how it works:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whenever I publish a post, git commits and pushes the code to GitHub first.&lt;/li&gt;
&lt;li&gt;The script polls the live post URL on &lt;code&gt;deepakness.com&lt;/code&gt; until Netlify returns a 200 OK status. This ensures no broken 404 links on social media.&lt;/li&gt;
&lt;li&gt;Mastodon and Bluesky are enabled by default so I don&#39;t have to specify them.&lt;/li&gt;
&lt;li&gt;If I want to send the draft to extra channels like Threads, X, or LinkedIn, I can pass a flag like &lt;code&gt;pnpm raw:push --platforms=threads,x&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Once live, it calls the Typefully API to schedule the draft for the next free slot.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And the output in the terminal is shown like this:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; Found target file: content/raw/typefully-local-sync/index.md
&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; Configured platforms: mastodon, bluesky
&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; Waiting &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; Netlify deploy&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;. Polling https://deepakness.com/raw/typefully-local-sync/
&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; ✓ Live page confirmed&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;HTTP &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt; OK after 42s&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; Sending draft to Typefully API&lt;span class=&quot;token punctuation&quot;&gt;..&lt;/span&gt;.
&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;Typefully Sync&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; 🎉 Draft successfully scheduled &lt;span class=&quot;token keyword&quot;&gt;in&lt;/span&gt; Typefully&lt;span class=&quot;token operator&quot;&gt;!&lt;/span&gt;
  Draft ID: &lt;span class=&quot;token number&quot;&gt;10183778&lt;/span&gt;
  Draft Title: &lt;span class=&quot;token string&quot;&gt;&quot;Replacing n8n with a local script for Typefully drafts&quot;&lt;/span&gt;
  Platforms: mastodon, bluesky
  Schedule: next-free-slot&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now there are no external n8n workflows to maintain, zero broken link issues, and full control over social distribution directly from the terminal.&lt;/p&gt;
&lt;p&gt;Absolutely love it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: August 05, 2026&lt;/p&gt;
&lt;p&gt;I updated &lt;code&gt;scripts/sync-typefully.js&lt;/code&gt; to automatically schedule drafts for &lt;strong&gt;15 minutes in the future&lt;/strong&gt; by default (calculated right after Netlify deployment finishes), instead of pushing to &lt;code&gt;next-free-slot&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;I can also customize the delay directly from the command line using the &lt;code&gt;--in&lt;/code&gt; flag:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pnpm raw:push --in=5&lt;/code&gt; – Schedules 5 minutes from now.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm blog:push --in 20&lt;/code&gt; – Schedules 20 minutes from now.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm raw:push --now&lt;/code&gt; – Publishes immediately.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pnpm raw:push --next-free-slot&lt;/code&gt; – Keeps the queue slot behavior.&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry><entry>
    <title>How I Publish Blog Posts and Notes So Fast</title>
    <link href="https://deepakness.com/blog/publish-fast/" />
    <updated>2026-08-03T18:09:05Z</updated>
    <id>https://deepakness.com/blog/publish-fast/</id>
    <summary>A look at the workflow, terminal scripts, VS Code extensions, and simple automation that help me publish blog posts and raw notes fast.</summary>
    <content type="html">&lt;p&gt;A reader recently sent me a message asking:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;How are you able to publish blog posts and raw notes so fast? What&#39;s your setup like, and are you using some background automation or API?&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&#39;s a great question. When people see someone posting quick notes and blog posts regularly, they usually think there&#39;s some complex CMS or API running in the background.&lt;/p&gt;
&lt;p&gt;The truth is, I don&#39;t use any web dashboards or complex APIs. I just have a simple setup with terminal scripts, a few VS Code extensions, and small background automations that remove all friction.&lt;/p&gt;
&lt;p&gt;Here&#39;s how my setup works and why it&#39;s so fast.&lt;/p&gt;
&lt;h2&gt;1. Two types of content: Blog vs Raw notes&lt;/h2&gt;
&lt;p&gt;One of the biggest reasons people take so long to publish is mental friction. If every post needs to be a 2,000-word polished essay, you overthink and end up publishing nothing.&lt;/p&gt;
&lt;p&gt;To solve this, I split my content into two types:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Blog posts under &lt;code&gt;/blog/&lt;/code&gt;:&lt;/strong&gt; Longer, detailed guides and essays, like my post on &lt;a href=&quot;https://deepakness.com/blog/omp-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;setting up OMP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Raw notes under &lt;code&gt;/raw/&lt;/code&gt;:&lt;/strong&gt; Short technical notes, quick fixes, links, or random thoughts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Having a &lt;a href=&quot;https://deepakness.com/raw/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;separate section for raw notes&lt;/a&gt; changed everything for me. I don&#39;t worry about perfect structure or length. If I learn a quick trick or fix a bug, I just drop it in a note and publish immediately.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By the way, I was inspired by &lt;a href=&quot;https://simonwillison.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Simon Willison&#39;s blog&lt;/a&gt; a lot, when I migrated my blog &lt;a href=&quot;https://deepakness.com/blog/from-wordpress-to-11ty/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;from WordPress to 11ty&lt;/a&gt; last year.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;2. Terminal shortcuts over web dashboards&lt;/h2&gt;
&lt;p&gt;I don&#39;t log into WordPress, Ghost, or any admin panel or CMS to write. Everything lives in plain Markdown files on my computer.&lt;/p&gt;
&lt;p&gt;Instead of opening a folder, creating a file, and manually adding dates and tags, I wrote a few small Node.js scripts.&lt;/p&gt;
&lt;p&gt;When I want to write a new note, I just open my terminal and run:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; raw my-quick-note&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or for a blog post:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; blog my-new-post&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This single command:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Creates the Markdown file in the right folder&lt;/li&gt;
&lt;li&gt;Fills in the date, title, and initial tags automatically&lt;/li&gt;
&lt;li&gt;Opens the file directly in VS Code&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It takes less than a second to get from an idea to a ready-to-type Markdown file.&lt;/p&gt;
&lt;h2&gt;3. VS Code extensions that speed up writing&lt;/h2&gt;
&lt;p&gt;I write and edit everything inside VS Code. To keep the writing process smooth and fast, I rely on a few simple extensions as well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=ltex-plus.vscode-ltex-plus&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LTeX+&lt;/a&gt;&lt;/strong&gt; (grammar/spell checking using LanguageTool): Great for basic spelling and grammar checks while typing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=yzhang.markdown-all-in-one&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Markdown All in One&lt;/a&gt;:&lt;/strong&gt; Makes writing Markdown much faster with simple keyboard shortcuts, like &lt;code&gt;Cmd+B&lt;/code&gt; for bold, &lt;code&gt;Cmd+I&lt;/code&gt; for italics, auto-formatting lists, and quick heading shortcuts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=TakumiI.markdowntable&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Markdown Table&lt;/a&gt;:&lt;/strong&gt; Takes the headache out of creating and formatting Markdown tables so everything stays neatly aligned automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;4. Automation doing the heavy lifting&lt;/h2&gt;
&lt;p&gt;Once I finish writing, I don&#39;t want to spend time optimizing images, making social preview cards, or running multiple Git commands.&lt;/p&gt;
&lt;p&gt;I built a simple command &lt;code&gt;pnpm ready&lt;/code&gt; that runs automatically before publishing:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Image optimization:&lt;/strong&gt; It automatically resizes and optimizes all new images so the page loads fast.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OG preview images:&lt;/strong&gt; It generates custom social share cards automatically. I also wrote about how I built &lt;a href=&quot;https://deepakness.com/blog/custom-og-images/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;custom OG images&lt;/a&gt; earlier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asset sync:&lt;/strong&gt; It uploads images to Cloudflare R2 so they load fast, and the site repository stays lightweight.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And to push the post live, I run just one command:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;pnpm&lt;/span&gt; raw:push&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This runs the checks, optimizes images, uploads them to R2, commits the changes, and pushes to GitHub. Netlify picks it up and deploys the site live in around 30 seconds.&lt;/p&gt;
&lt;h2&gt;5. The 2-minute workflow&lt;/h2&gt;
&lt;p&gt;Here&#39;s what publishing a quick note looks like from start to finish:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open terminal and run &lt;code&gt;pnpm raw &amp;lt;title&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Write the note in VS Code&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;pnpm raw:push&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&quot;Publishing posts fast via VS Code&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/blog/publish-fast/vs-code-publishing-process.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s literally it. From an idea in my head to a live link on the internet, it takes under two minutes.&lt;/p&gt;
&lt;p&gt;But yes, publishing &lt;a href=&quot;https://deepakness.com/blog/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;blog posts&lt;/a&gt; takes much longer than this as they are more thorough.&lt;/p&gt;
&lt;h2&gt;Why speed matters&lt;/h2&gt;
&lt;p&gt;If publishing a quick thought takes 15 minutes of logging in, clicking buttons, and formatting layout, you will eventually stop doing it. By building small terminal shortcuts and letting scripts handle the boring parts, publishing becomes as fast and natural as writing a note to yourself.&lt;/p&gt;
&lt;p&gt;If you&#39;re curious about the full tech stack and infrastructure powering this site, &lt;a href=&quot;https://deepakness.com/colophon/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;check out the colophon&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Using the Kero terminal for coding</title>
    <link href="https://deepakness.com/raw/using-kero/" />
    <updated>2026-08-06T00:00:00Z</updated>
    <published>2026-08-02T14:02:40Z</published>
    <id>https://deepakness.com/raw/using-kero/</id>
    <summary>Discovered the new Kero terminal and using it for vibe coding using Pi or OMP agent.</summary>
    <content type="html">&lt;p&gt;I just discovered this new terminal app called &lt;a href=&quot;https://kero.sh/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;kero.sh&lt;/a&gt; that basically removes the need of opening an IDE like VS Code or so when vibe coding. It was &lt;a href=&quot;https://x.com/chandler_bing26/status/2083832949183741978&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;recommended to me on X&lt;/a&gt;, and I tried and liked it immediately.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Using the Kero terminal&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/using-kero/using-kero-terminal.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I mainly use the &lt;a href=&quot;https://deepakness.com/raw/cmux-config/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;cmux app&lt;/a&gt; that works great, but the inbuilt files and git extension in Kero caught my attention. I miss a few things in the Kero terminal though, like the ability to drag terminal tabs to the left, right, bottom, or top sides as possible in cmux. But I can still use &lt;code&gt;cmd + t&lt;/code&gt; or &lt;code&gt;cmd + d&lt;/code&gt; in Kero and that is enough.&lt;/p&gt;
&lt;p&gt;Another thing I didn&#39;t like about Kero is, &lt;code&gt;cmd&lt;/code&gt; + &lt;code&gt;+&lt;/code&gt; or &lt;code&gt;-&lt;/code&gt; didn&#39;t work for zoom in or out, as I can do in basically any other terminal. You can only adjust the font size from settings, if you want bigger or smaller text.&lt;/p&gt;
&lt;p&gt;Currently, I&#39;m mainly using cmux but testing and trying Kero with my workflow as well. And if I like it after a few days, I&#39;ll migrate everything to using Kero.&lt;/p&gt;
&lt;p&gt;Let&#39;s see.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Another major thing I didn&#39;t like about Kero is that it doesn&#39;t persist AI agent sessions (like &lt;a href=&quot;https://deepakness.com/blog/pi-agent-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pi agent&lt;/a&gt; or &lt;a href=&quot;https://deepakness.com/blog/omp-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OMP agent&lt;/a&gt;) when the app is restarted. In cmux, if I&#39;m working with Pi or OMP agent and close and reopen the app, all those sessions automatically stay open and I can just continue typing new prompts right away. That doesn&#39;t happen in Kero.&lt;/p&gt;
&lt;p&gt;So after using it for 3-4 days, I&#39;m back to &lt;a href=&quot;https://deepakness.com/raw/cmux-config/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;using cmux&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Setting Up and Testing OMP (Oh My Pi) Agent</title>
    <link href="https://deepakness.com/blog/omp-setup/" />
    <updated>2026-08-02T05:53:23Z</updated>
    <id>https://deepakness.com/blog/omp-setup/</id>
    <summary>Testing OMP (Oh My Pi), a Pi-based terminal coding agent with Claude Opus 5, DeepSeek v4 Flash, and Grok 4.5 profiles pinned per project.</summary>
    <content type="html">&lt;p&gt;I wrote about &lt;a href=&quot;https://deepakness.com/blog/pi-agent-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;setting up Pi&lt;/a&gt; a couple of months ago. I still use Pi, but less than before – my daily driver these days is &lt;a href=&quot;https://deepakness.com/raw/supergrok-3-months/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Grok Build&lt;/a&gt;, as noted on my &lt;a href=&quot;https://deepakness.com/ai/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;AI stack page&lt;/a&gt;. I recently discovered &lt;a href=&quot;https://omp.sh/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OMP (Oh My Pi)&lt;/a&gt; – a different terminal coding agent based on Pi – and I have been liking how it works so far. I am still testing it, but one thing I really like is how it lets my three model services work together instead of competing.&lt;/p&gt;
&lt;p&gt;Claude Opus 5 does the thinking, DeepSeek v4 Flash does the cheap heavy lifting, and Grok 4.5 fills in the gaps. And I can switch the whole combination per project with one command.&lt;/p&gt;
&lt;p&gt;Here&#39;s how it works.&lt;/p&gt;
&lt;h2&gt;The problem&lt;/h2&gt;
&lt;p&gt;I use three services:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Claude (Opus 5)&lt;/strong&gt; – the most capable model I have, but not unlimited. Quota runs out if I use it for everything.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek v4 Flash&lt;/strong&gt; – cheap, fast, and has a huge context window. Great for volume work, but I want a stronger model overseeing it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grok 4.5 (xAI)&lt;/strong&gt; – a good alternative for planning, vision, and design work when I don&#39;t want to spend Claude quota.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The problem was never &amp;quot;which model is best&amp;quot;. The real problem was using all three without manually switching models every few minutes, and without burning Claude&#39;s quota on repetitive tasks.&lt;/p&gt;
&lt;h2&gt;Model roles&lt;/h2&gt;
&lt;p&gt;OMP has a &lt;a href=&quot;https://omp.sh/docs/roles&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;model roles feature&lt;/a&gt; where instead of configuring one model, you configure a model for each role in the config file:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;default&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The main model that does the actual work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;plan&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Used when a task needs planning first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;slow&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The heaviest model, for the hardest problems&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;task&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Subagents – the model used when work is delegated to parallel agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;smol&lt;/code&gt; / &lt;code&gt;tiny&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lightweight tasks like titles and commit messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;vision&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Image analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;designer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;UI and design work&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;advisor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;A second model that watches every turn and can interrupt with concerns&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Each role also takes a thinking level: &lt;code&gt;minimal&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;, or &lt;code&gt;max&lt;/code&gt;. So &amp;quot;use Claude Opus 5 for everything, but with different thinking effort&amp;quot; is literally a few lines of config. The complete list of roles lives in the &lt;a href=&quot;https://omp.sh/docs/settings&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;settings documentation&lt;/a&gt; under &lt;code&gt;modelRoles&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;OMP agent model roles for the &#39;cheap&#39; profile I created&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/blog/omp-setup/omp-model-roles.png&quot;&gt;&lt;/p&gt;
&lt;h2&gt;My three profiles&lt;/h2&gt;
&lt;p&gt;Profiles live in &lt;code&gt;~/.omp/profiles/&lt;/code&gt; as YAML files. Each one maps roles to models. I have three:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Three OMP profiles I have&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/blog/omp-setup/omp-profiles.png&quot;&gt;&lt;/p&gt;
&lt;h3&gt;1. opus-only (my default)&lt;/h3&gt;
&lt;p&gt;Everything on Claude Opus 5, graded by thinking effort:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;modelRoles&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
  &lt;span class=&quot;token key atrule&quot;&gt;plan&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;xhigh
  &lt;span class=&quot;token key atrule&quot;&gt;slow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max
  &lt;span class=&quot;token key atrule&quot;&gt;task&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
  &lt;span class=&quot;token key atrule&quot;&gt;smol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;low
  &lt;span class=&quot;token key atrule&quot;&gt;commit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;low
  &lt;span class=&quot;token key atrule&quot;&gt;vision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
  &lt;span class=&quot;token key atrule&quot;&gt;designer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high
  &lt;span class=&quot;token key atrule&quot;&gt;advisor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use this when quality matters most and quota is fine.&lt;/p&gt;
&lt;h3&gt;2. hybrid&lt;/h3&gt;
&lt;p&gt;Opus 5 still drives, but DeepSeek v4 Flash takes the volume roles:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;modelRoles&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
  &lt;span class=&quot;token key atrule&quot;&gt;plan&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;xhigh
  &lt;span class=&quot;token key atrule&quot;&gt;slow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max
  &lt;span class=&quot;token key atrule&quot;&gt;task&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max   &lt;span class=&quot;token comment&quot;&gt;# subagent fan-out = where tokens vanish&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;smol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max
  &lt;span class=&quot;token key atrule&quot;&gt;tiny&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;minimal
  &lt;span class=&quot;token key atrule&quot;&gt;commit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;minimal
  &lt;span class=&quot;token key atrule&quot;&gt;vision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
  &lt;span class=&quot;token key atrule&quot;&gt;designer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high
  &lt;span class=&quot;token key atrule&quot;&gt;advisor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;low&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use this for long agentic sessions with wide subagent fan-outs, where Anthropic quota matters.&lt;/p&gt;
&lt;h3&gt;3. cheap&lt;/h3&gt;
&lt;p&gt;DeepSeek v4 Flash does the work, Grok plans, Opus supervises:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;modelRoles&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max   &lt;span class=&quot;token comment&quot;&gt;# the workhorse&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;task&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max   &lt;span class=&quot;token comment&quot;&gt;# subagents on the same workhorse&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;smol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max
  &lt;span class=&quot;token key atrule&quot;&gt;commit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;flash&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max
  &lt;span class=&quot;token key atrule&quot;&gt;slow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;pro&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;max     &lt;span class=&quot;token comment&quot;&gt;# escalation, still DeepSeek&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;plan&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high          &lt;span class=&quot;token comment&quot;&gt;# structuring the work&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;tiny&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;     xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;minimal
  &lt;span class=&quot;token key atrule&quot;&gt;vision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;   xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium        &lt;span class=&quot;token comment&quot;&gt;# deepseek is text-only&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;designer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high
  &lt;span class=&quot;token key atrule&quot;&gt;advisor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;  anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium   &lt;span class=&quot;token comment&quot;&gt;# Claude watches the weaker driver&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Use this when Anthropic quota is spent, or the work is high-volume and low-stakes.&lt;/p&gt;
&lt;h2&gt;Pinning a profile per project&lt;/h2&gt;
&lt;p&gt;Profiles are just files. The switching mechanism is a tiny shell function I added to my &lt;code&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;
&lt;pre class=&quot;language-zsh&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-zsh&quot;&gt;omp-pin() { mkdir -p .omp &amp;&amp; cp ~/.omp/profiles/&quot;$1&quot;.yml .omp/config.yml &amp;&amp; echo &quot;pinned $1 -&gt; $PWD/.omp/config.yml&quot;; }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt=&quot;Pinning the cheap profile to a project&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/blog/omp-setup/omp-pin-terminal.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Run &lt;code&gt;omp-pin cheap&lt;/code&gt; inside a project and that project now uses the cheap profile. The project config is an overlay – anything not listed in it falls through to the global config, so a profile only changes what it needs to.&lt;/p&gt;
&lt;h2&gt;The advisor&lt;/h2&gt;
&lt;p&gt;My favorite part of this setup is that &lt;strong&gt;every profile has an advisor&lt;/strong&gt; – even the cheap one. In &lt;code&gt;cheap&lt;/code&gt;, Claude doesn&#39;t do the work; it watches. The &lt;a href=&quot;https://github.com/can1357/oh-my-pi/blob/main/docs/advisor-watchdog.md&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;advisor role reviews each completed turn&lt;/a&gt; and can interrupt with a concern if the main model is about to do something wrong.&lt;/p&gt;
&lt;p&gt;The cheap profile tunes it to be stricter:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;advisor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;enabled&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean important&quot;&gt;true&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;syncBacklog&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;1&quot;&lt;/span&gt;    &lt;span class=&quot;token comment&quot;&gt;# primary waits (&amp;lt;=30s) for review to catch up&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;immuneTurns&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;      &lt;span class=&quot;token comment&quot;&gt;# let Claude interrupt often&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So the worst case for a cheap run is DeepSeek v4 Flash doing the work, Grok planning it, and Claude supervising it. For low-stakes tasks that&#39;s overkill in a good way.&lt;/p&gt;
&lt;h2&gt;Approval mode&lt;/h2&gt;
&lt;p&gt;I run everything in &lt;code&gt;yolo&lt;/code&gt; mode – all commands and edits are auto-approved, no permission popups. I know most people would hate this, but it works for me for two reasons: I review every diff before committing, and the sessions are easy to redo if something goes wrong. The approval modes are worth reading before you decide.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Profiles deliberately don&#39;t set &lt;code&gt;tools:&lt;/code&gt; – approval policy stays whatever the global config says. Only models are set per project, and safety policy stays global.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Fallback chains&lt;/h2&gt;
&lt;p&gt;Claude&#39;s quota runs out if I use it for everything – that&#39;s the whole reason for this setup. So I set up fallback chains: if the active model fails or exhausts its limits, the session automatically moves down a chain instead of stopping:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;retry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;fallbackChains&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; anthropic/claude&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;opus&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;medium
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; deepseek/deepseek&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;v4&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;pro&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; xai&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;oauth/grok&lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt;4.5&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;high&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Rate limits were never really the problem – they are rarely an issue. The chains exist so that when Claude&#39;s or Grok&#39;s quota is exhausted, the work shifts to the fallback and the session keeps going. And once the primary model is available again, the session switches back.&lt;/p&gt;
&lt;h2&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;OMP is still in its testing phase for me. Pi still has its place, mainly for side projects, and I have been using it regularly. So far, here is what I like about how OMP works:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Opus 5 for everything by default, graded thinking effort per role&lt;/li&gt;
&lt;li&gt;DeepSeek v4 Flash as the workhorse in cheap mode&lt;/li&gt;
&lt;li&gt;Grok 4.5 for planning, vision, and design&lt;/li&gt;
&lt;li&gt;Three profiles pinned per project with &lt;code&gt;omp-pin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The advisor keeping Claude in the loop even when it&#39;s not doing the work&lt;/li&gt;
&lt;li&gt;Fallback chains so a spent quota never stops a session&lt;/li&gt;
&lt;li&gt;YOLO approvals, with diff review before commits&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best part is that this is all config files – no product decision locked me in. If DeepSeek, Codex, or any other provider releases something better, I can switch to it with one line in one profile. If I want a project to behave differently, I pin a different profile.&lt;/p&gt;
&lt;p&gt;I will keep updating this post as the setup changes.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Typefully now supports Substack as well</title>
    <link href="https://deepakness.com/raw/typefully-substack/" />
    <updated>2026-07-31T12:07:19Z</updated>
    <id>https://deepakness.com/raw/typefully-substack/</id>
    <summary>I was super glad to learn that Typefully now also supports directly publishing to Substack as well.</summary>
    <content type="html">&lt;p&gt;I have been using &lt;a href=&quot;https://typefully.com/?via=tf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Typefully&lt;/a&gt; for, I think, more than 2 years now. And I was super glad to learn that it has now started supporting directly publishing &lt;a href=&quot;https://substack.com/@deepakness&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;posts to Substack&lt;/a&gt; as well. I immediately created an account on Substack, and connected it to Typefully to send my first post, as you see below.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;First Substack post from DeepakNess&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/typefully-substack/first-subsctack-post.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;After this, I think, Typefully is the best social media management and automation tool out there. I haven&#39;t come across another such SaaS that is such a delight to use and actually listens to their users.&lt;/p&gt;
&lt;p&gt;You can &lt;a href=&quot;https://typefully.com/?via=tf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;sign up to Typefully from here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apart from Substack, I have also connected my X (Twitter), Threads, Mastodon, Bluesky, and LinkedIn profiles, and everything works flawlessly.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Saving €50 each month on Hetzner</title>
    <link href="https://deepakness.com/raw/hetzner-new-prices/" />
    <updated>2026-07-31T02:30:30Z</updated>
    <id>https://deepakness.com/raw/hetzner-new-prices/</id>
    <summary>Purchased 5 different servers on Hetzner a few years ago, and now saving €50 each month as per the new pricing.</summary>
    <content type="html">&lt;p&gt;I use Hetzner VPS a lot for many of my projects and currently have 5 different servers via them. And after Hetzner &lt;a href=&quot;https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;hiked their prices&lt;/a&gt;, they still let existing users retain their old prices, at least, for now. On the new price, I would be paying €95.95/mo but on old price I&#39;m only paying €45.95, saving €50 each month.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Saving €50 each month on Hetzner&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/hetzner-new-prices/hetzner-savings.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;As in the screenshot, I have these VPS currently locked on the old price.&lt;/p&gt;
&lt;p&gt;Couldn&#39;t be happier.&lt;/p&gt;
</content>
  </entry><entry>
    <title>OPML download on the blogroll</title>
    <link href="https://deepakness.com/raw/blogroll-opml-download/" />
    <updated>2026-07-30T15:58:54Z</updated>
    <id>https://deepakness.com/raw/blogroll-opml-download/</id>
    <summary>You can now download my blogroll as an OPML file and import it into your favorite RSS reader.</summary>
    <content type="html">&lt;p&gt;Added a small thing on the &lt;a href=&quot;https://deepakness.com/blogroll/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;blogroll&lt;/a&gt; page today – you can now download the list as OPML and import it into your favorite RSS reader.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Download /blogroll in .opml format&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/blogroll-opml-download/download-opml-blogroll.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;It only includes blogs that have a public feed. The file is generated at build time from the same list on the page, so it stays in sync automatically.&lt;/p&gt;
&lt;p&gt;That&#39;s the update.&lt;/p&gt;
</content>
  </entry><entry>
    <title>3 Reddit accounts brands should have</title>
    <link href="https://deepakness.com/raw/reddit-idea-for-brands/" />
    <updated>2026-07-29T17:47:12Z</updated>
    <id>https://deepakness.com/raw/reddit-idea-for-brands/</id>
    <summary>Ross Simmonds on the three Reddit accounts every brand should set up.</summary>
    <content type="html">&lt;p&gt;Came across a short talk &lt;a href=&quot;https://x.com/TheCoolestCool/status/2082430620420964358&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;by Ross Simmonds&lt;/a&gt; on how brands should show up on Reddit, and I liked it. He recommends three types of accounts brands should have:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Brand subreddit&lt;/strong&gt; –&lt;code&gt;r/yourbrand&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Create this last week if you haven&#39;t already. If someone else claims it and owns it, you lose complete control. And if the subreddit already exists, slide into the mod&#39;s DMs and ask if they&#39;d be okay with you becoming a co-mod.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Brand user account&lt;/strong&gt; – &lt;code&gt;u/yourbrand&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is the official brand voice. Use it only when people are saying nice things. Don&#39;t get into fights with this account.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Personified human account&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A real person representing the brand in the subreddits where your community already exists. This one shows up when people are complaining, have problems, or are asking questions adjacent to what you sell.&lt;/p&gt;
&lt;p&gt;Simple setup, but makes a lot of sense.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Google Search Console now supports social accounts</title>
    <link href="https://deepakness.com/raw/gsc-social-support/" />
    <updated>2026-07-29T17:12:59Z</updated>
    <id>https://deepakness.com/raw/gsc-social-support/</id>
    <summary>The biggest update in Google Search Console as it now supports adding social profiles Instagram, TikTok, X, and YouTube.</summary>
    <content type="html">&lt;p&gt;Google Search Console has received one of the biggest updates in years as it now supports adding social profiles like Instagram, TikTok, X, and YouTube. It will show which of your contents are performing good, and how many clicks they&#39;re getting from Google.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Google Search Console supported social accounts list&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/gsc-social-support/gsc-social-accounts-list.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I just added and verified my X (Twitter) profile where I had to log in and give GSC access to my X profile. It requested access to details like profile picture, username, followers count, etc. as you see in the screenshot here.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Adding X profile to Google Search Console&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/gsc-social-support/gsc-x-add.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;It will take up to 48 hours for the data to appear. And it will be interesting to see those data about my X posts.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Cursor launches a new plan &#39;Start&#39; in India</title>
    <link href="https://deepakness.com/raw/cursor-start/" />
    <updated>2026-07-28T07:08:55Z</updated>
    <id>https://deepakness.com/raw/cursor-start/</id>
    <summary>Cursor AI has just launched a new plan India between Free and Pro, and it&#39;s called Start.</summary>
    <content type="html">&lt;p&gt;Cursor AI has launched &lt;a href=&quot;https://x.com/cursor_ai/status/2081978255004053560&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;a new pricing plan&lt;/a&gt; exclusive to India, &lt;a href=&quot;https://cursor.com/changelog/cursor-start&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;it&#39;s called Start&lt;/a&gt; and costs ₹649 per month. It sits between the Free and Pro plan, and I&#39;m sure the limits are accordingly adjusted.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor Start pricing plan&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/cursor-start/start.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I think, it&#39;s a good plan for casual coders or beginners. They can use Composer 2.5 model for everything and if more intelligence is required, Grok 4.5 can also be used.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Subscribed to SuperGrok 3-month offer</title>
    <link href="https://deepakness.com/raw/supergrok-3-months/" />
    <updated>2026-07-27T15:24:55Z</updated>
    <id>https://deepakness.com/raw/supergrok-3-months/</id>
    <summary>Loved Grok 4.5 so much that I now subscribed to Grok&#39;s SuperGrok plan of 1 month and got 2 months extra for free.</summary>
    <content type="html">&lt;p&gt;I was subscribed to Cursor&#39;s Pro+ plan and used Grok 4.5 via there, and absolutely loved the model. It&#39;s fast and intelligent. And now that my Cursor subscription has ended, I &lt;a href=&quot;https://x.com/chandler_bing26/status/2081725923385348127&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;was suggested&lt;/a&gt; to use Grok Build via SuperGrok as there was a great ongoing offer.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;SuperGrok 3-month offer&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/supergrok-3-months/supergrok-3-months-offer.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I checked and discovered that there is a pay for 1-month and get 2 months extra for free offer going on via Grok Android app. So I immediately subscribed to it and now using it via Grok Build.&lt;/p&gt;
&lt;p&gt;So far so good, and will share my experience in the next few days.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Updated the footer of the site</title>
    <link href="https://deepakness.com/raw/updated-footer/" />
    <updated>2026-07-27T12:48:40Z</updated>
    <id>https://deepakness.com/raw/updated-footer/</id>
    <summary>Reorganized the footer links and stats so the important stuff is easier to scan.</summary>
    <content type="html">&lt;p&gt;I spent some time reorganizing the footer on &lt;a href=&quot;https://deepakness.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this site&lt;/a&gt;. Nothing fancy, just making it easier to scan after it had slowly turned into a long flat list of links over time.&lt;/p&gt;
&lt;p&gt;Earlier the footer menu was basically one row of everything – all with the same weight. It worked, but nothing felt primary. So I split it into two rows: the main links up top and the rest slightly smaller and quieter below.&lt;/p&gt;
&lt;p&gt;The stats line got a small polish too. Numbers are a bit heavier now so they stand out, separators are simple center dots, and GitHub contributions stay on the second line. I had written about &lt;a href=&quot;https://deepakness.com/raw/showing-stats-in-footer/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;showing stats in the footer&lt;/a&gt; earlier, so this is more of a layout cleanup than a new feature.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Footer before the update&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/updated-footer/footer-before.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;After:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Footer after the update&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/updated-footer/footer-after.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;While I was at it, I also cleaned up a few nearby things: “Building now” on the homepage, a single Related block on posts and notes (tag matches plus the AI stack link when it fits), and a small latest writings list on the &lt;a href=&quot;https://deepakness.com/now/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Now&lt;/a&gt; page. Also switched most page headings to sentence case so they feel more consistent, except on individual posts and notes.&lt;/p&gt;
&lt;p&gt;That&#39;s the update.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Thinking of getting another wifi connection</title>
    <link href="https://deepakness.com/raw/another-wifi-connection/" />
    <updated>2026-07-27T06:25:50Z</updated>
    <id>https://deepakness.com/raw/another-wifi-connection/</id>
    <summary>Last week my only wifi connection was down for 2-3 hours, so now I&#39;m thinking of getting another one.</summary>
    <content type="html">&lt;p&gt;I have a wifi connection from Airtel Fiber at my place and it&#39;s quite good, until I experienced a 2-3 hours downtime last week. And where I live, there&#39;s no strong cellular signal as well, so I&#39;m completely dependent on the wifi for internet and calls.&lt;/p&gt;
&lt;p&gt;To prevent this from happening again, I&#39;m thinking of getting another wifi connection, likely from Jio Fiber. It should not be very high speed and even 30 Mbps would work as it&#39;s just for backup, as my main connection is good for me at 200 Mbps.&lt;/p&gt;
&lt;p&gt;I&#39;m almost sure about this and will be getting this installed next week.&lt;/p&gt;
</content>
  </entry><entry>
    <title>$934.38 worth of usage on Cursor $60 plan</title>
    <link href="https://deepakness.com/raw/cursor-pro-plus-usage/" />
    <updated>2026-07-26T02:52:35Z</updated>
    <id>https://deepakness.com/raw/cursor-pro-plus-usage/</id>
    <summary>I used $934.38 worth of tokens from different AI models on Cursor&#39;s Pro+ ($60) plan.</summary>
    <content type="html">&lt;p&gt;Today, my Cursor AI subscription is expiring (yet to decide whether I will renew or not) and I was surprised when I checked my usage in the last 30 days. I used &lt;strong&gt;$934.38 worth of tokens&lt;/strong&gt; across different models on my Cursor Pro+ ($60/mo) plan, as you see in the screenshot here.&lt;/p&gt;
&lt;p&gt;That&#39;s &lt;strong&gt;15x&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor usage on $60 plan&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/cursor-pro-plus-usage/usage.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I used more than &lt;strong&gt;2.9 billion tokens&lt;/strong&gt; across different models, and most used were Cursor Grok 4.5 and Composer 2.5 models. While I could have managed and done better for the API models, I am still very happy with everything.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor usage tokens on Pro+ plan&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/cursor-pro-plus-usage/tokens.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Apart from this, here&#39;s a screenshot from my Cursor profile that shows some more data points.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor profile page screenshot&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/cursor-pro-plus-usage/cursor-profile.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Currently, I have auto-renew turned off and have yet to decide whether I would want to renew the subscription or not. I am currently also subscribed to Claude $100 plan, and can also use Grok Build via my X Premium subscription.&lt;/p&gt;
&lt;p&gt;I think, for now, Cursor Pro for $20/mo would be enough for me.&lt;/p&gt;
&lt;p&gt;Apart from this, I remembered one more thing that even after I finished 100% in both Cursor Models and Other Models pools, the &lt;code&gt;Auto&lt;/code&gt; mode kept working. I used another ~90 million tokens in the last 2-3 days of my subscription.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Claude Opus 5 first impressions</title>
    <link href="https://deepakness.com/raw/opus-5-first-impressions/" />
    <updated>2026-07-25T00:00:00Z</updated>
    <published>2026-07-24T18:16:09Z</published>
    <id>https://deepakness.com/raw/opus-5-first-impressions/</id>
    <summary>Anthropic&#39;s new Claude Opus 5 model is launched, and here are my first impressions</summary>
    <content type="html">&lt;p&gt;Anthropic&#39;s new &lt;a href=&quot;https://www.anthropic.com/news/claude-opus-5&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Claude Opus 5 model is here&lt;/a&gt;, and I don&#39;t think I need to use the Fable 5 model anymore for basically anything. The new model is already better than Fable 5 in almost every aspect, as you might see in the benchmark below.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Claude Opus 5 model benchmarks&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/opus-5-first-impressions/claude-opus-5.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;And the best thing? It&#39;s priced at the half of the Fable 5 model, the same as how previous Opus models like 4.8 where priced. So it does make sense when I say that there&#39;s no need to use Fable 5 anymore, no?&lt;/p&gt;
&lt;p&gt;I have been using the model for the last ~30 minutes inside Claude Code, and so far I like it. I am keeping it at the &lt;code&gt;Max&lt;/code&gt; effort and the limits are still not draining too fast like Fable. And like other Opus models, the new one is also great at frontend designs.&lt;/p&gt;
&lt;p&gt;I will share more info as I use and experience the new model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: July 25, 2026&lt;/p&gt;
&lt;p&gt;One thing I noticed is, Opus 5 is consuming significantly fewer tokens than the previous Opus 4.8 model for the same tasks. This is confirmed in their launch post as well that Opus 5 has a lower cost per task than 4.8.&lt;/p&gt;
&lt;p&gt;My $100 Claude plan is very usable once again.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Added a paper theme and some other updates</title>
    <link href="https://deepakness.com/raw/added-paper-theme/" />
    <updated>2026-07-20T01:22:07Z</updated>
    <id>https://deepakness.com/raw/added-paper-theme/</id>
    <summary>Added a warm paper reading theme, cleaned up dark mode a bit, and made the header avatar clickable.</summary>
    <content type="html">&lt;p&gt;A few months ago I &lt;a href=&quot;https://deepakness.com/raw/added-dark-mode/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;added dark mode&lt;/a&gt; to this site, and yesterday I spent some more time polishing the themes and a few other small things around the site.&lt;/p&gt;
&lt;p&gt;There is now a third option called &lt;strong&gt;paper&lt;/strong&gt; – a warm cream look that feels nicer for longer reading. Links stay monochrome in this mode, so the page feels quieter overall. The theme button in the header now cycles between light, paper, and dark. Paper uses a coffee icon, which somehow felt right for that cozy reading vibe. If you haven&#39;t picked a theme yet, the site still follows your browser preference, and once you choose one it remembers it.&lt;/p&gt;
&lt;p&gt;I also made dark mode a bit more readable – lifted the palette a little, cleaned up muted text, and made code blocks look consistent across all themes instead of shifting around. A few small alignment issues with chips and comment actions are fixed too, so switching themes shouldn&#39;t nudge the layout anymore.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;New header design&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/added-paper-theme/new-header.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Apart from themes, I updated my profile photo in the header. It&#39;s an opaque square photo now, and clicking it opens a larger floating preview. But clicking on the name &amp;quot;DeepakNess&amp;quot; still takes you to the home page – only the photo opens the preview, as you see above.&lt;/p&gt;
&lt;p&gt;Also upgraded a bunch of dependencies and switched the project over to &lt;code&gt;pnpm&lt;/code&gt; while I was at it, but that&#39;s just under the hood.&lt;/p&gt;
&lt;p&gt;You can visit the &lt;a href=&quot;https://deepakness.com/colophon/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;colophon&lt;/a&gt; page to see more technical details of the website.&lt;/p&gt;
&lt;p&gt;That&#39;s the update.&lt;/p&gt;
</content>
  </entry><entry>
    <title>SharePDF reaches 350+ users</title>
    <link href="https://deepakness.com/raw/sharepdf-350/" />
    <updated>2026-07-19T15:27:30Z</updated>
    <id>https://deepakness.com/raw/sharepdf-350/</id>
    <summary>SharePDF recently hit 350 users mark, and here&#39;s the progress so far.</summary>
    <content type="html">&lt;p&gt;SharePDF recently hit the 350 users mark, and it makes me so happy about it. This is a kind of my first ever SaaS that I built from scratch with &lt;a href=&quot;https://bikashkampo.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bikash&lt;/a&gt;, and seeing this grow this much fills my heart with joy.&lt;/p&gt;
&lt;p&gt;Apart from this, we also completely revamped the UI and UX for SharePDF recently and now all pages follow a different design aesthetic everywhere.&lt;/p&gt;
&lt;p&gt;That&#39;s it.&lt;/p&gt;
&lt;p&gt;That&#39;s the update.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Scraping using Pi agent + Cursor SDK + Codex /goal</title>
    <link href="https://deepakness.com/raw/pi-cursor-codex-scraping/" />
    <updated>2026-07-19T04:17:16Z</updated>
    <id>https://deepakness.com/raw/pi-cursor-codex-scraping/</id>
    <summary>I think I have found the perfect scraping setup using Pi agent, Cursor SDK, and Codex /goal by using Cursor&#39;s Composer 2.5 model.</summary>
    <content type="html">&lt;p&gt;I think, I have found the perfect web scraping setup for myself. Currently, I am using the Cursor SDK via &lt;a href=&quot;https://pi.dev/packages/pi-cursor-sdk&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;pi-cursor-sdk&lt;/a&gt; and Codex&#39;s /goal via &lt;a href=&quot;https://pi.dev/packages/pi-codex-goal&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;pi-codex-goal&lt;/a&gt; inside the &lt;a href=&quot;https://pi.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pi agent&lt;/a&gt; using Cursor&#39;s Composer 2.5 model and doing great so far.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Running scraping task for 2+ days in Pi agent&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/pi-cursor-codex-scraping/pi-scraping-2-days.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;As you can see in the above screenshot, the scraper is running for over 2 days, continuously. It stopped a few times due to the model downtime but then &lt;code&gt;/goal resume&lt;/code&gt; continued right from where it stopped.&lt;/p&gt;
&lt;p&gt;Basically, I am using the Composer 2.5 model from Cursor for this. The model writes the scraping script in Python and then keeps the process running, if it fails for any reason, the model makes necessary changes in the script and keep it running. For the last few days, as you see in the screenshot below, you can see the sudden spike in my usage. I have used more than 1.5 billion tokens as I&#39;m running multiple scrapers at the same time, continuously.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor AI subscription usage on Pro+ plan&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/pi-cursor-codex-scraping/cursor-usage.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I&#39;m on the Pro+ plan ($60/mo) on Cursor and I think it&#39;s the best value for money AI subscription right now.&lt;/p&gt;
</content>
  </entry><entry>
    <title>macOS 27 Beta dasd eating 40+GB of RAM</title>
    <link href="https://deepakness.com/raw/macos-27-dasd-issues/" />
    <updated>2026-07-16T12:04:47Z</updated>
    <id>https://deepakness.com/raw/macos-27-dasd-issues/</id>
    <summary>Found a solution to macOS 27 Golden Gate developer beta `dasd` process is eating 40+ GB of RAM and Swap.</summary>
    <content type="html">&lt;p&gt;I installed the macOS 27 Golden Gate developer beta from the very start, and now running into this &lt;code&gt;dasd&lt;/code&gt; process consuming too much computer resources most of the time. I thought this will be solved eventually, but it hasn&#39;t been solved in the developer beta 3 or even in the first public beta.&lt;/p&gt;
&lt;p&gt;Earlier, I wasn&#39;t having this issue (but most people are having this from the start) and started having this only after installing the latest update. My MacBook M2 Air 16 GB is now consuming 40+GB of RAM+Swap memory, and computer starts running very slow.&lt;/p&gt;
&lt;p&gt;So... I researched and found &lt;a href=&quot;https://www.reddit.com/r/MacOSBeta/comments/1ulupv9/comment/ov7f5w3/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this Reddit post&lt;/a&gt; where a person shares a solution that many people replied that it worked for them. I also tried the following command, and surprisingly I&#39;m not running into the issue again.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-rf&lt;/span&gt; /private/var/db/powerlog 
&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;reboot&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You need your admin password to run this, and it didn&#39;t break anything else for me, so it&#39;s safe to run.&lt;/p&gt;
&lt;p&gt;Honestly, I don&#39;t know what it does, but you can look it up.&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Got a monitor stand for my desk</title>
    <link href="https://deepakness.com/raw/got-a-monitor-stand/" />
    <updated>2026-07-12T06:57:14Z</updated>
    <id>https://deepakness.com/raw/got-a-monitor-stand/</id>
    <summary>Moved my monitor behind the laptop on a stand so I don&#39;t have to keep turning my head to the right.</summary>
    <content type="html">&lt;p&gt;Earlier, I used to keep my monitor towards the right of my laptop, as you see in the &lt;a href=&quot;https://deepakness.com/blog/work-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;old work setup&lt;/a&gt;. But a friend suggested keeping the monitor behind my laptop at some height, and I just got a monitor stand for my desk, as you see below.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Monitor stand under my Samsung monitor&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/got-a-monitor-stand/monitor-stand.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;Honestly, it does make my work setup a bit better. I actually feel comfortable working like this because now I don&#39;t have to turn my head towards the right side to look at the monitor.&lt;/p&gt;
&lt;p&gt;And here&#39;s what my current setup looks like now:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Laptop, monitor, and monitor stand setup on my desk&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/got-a-monitor-stand/laptop-monitor.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;The wires and all are still a bit messy, but I&#39;m perfectly okay with that. In fact, I love seeing a bit of wires going here and there on the side.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Minimal X v2.4 is here</title>
    <link href="https://deepakness.com/raw/minimal-x-2-4/" />
    <updated>2026-07-12T04:14:09Z</updated>
    <id>https://deepakness.com/raw/minimal-x-2-4/</id>
    <summary>A new version of Minimal X Chrome extension that makes X (Twitter) browsing experience better, is here.</summary>
    <content type="html">&lt;p&gt;Just released a new version of the &lt;a href=&quot;https://chromewebstore.google.com/detail/minimal-x/bpneckmaohifnjgbdmmanchmdombmill&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Chrome extension Minimal X&lt;/a&gt; that lets you remove the persistent highlighted section from the &lt;a href=&quot;https://x.com/explore&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;/explore&lt;/a&gt; page.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;X Explore page Football section&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/minimal-x-2-4/explore-football-x.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;For example, currently this football section is highlighted and as I don&#39;t watch football, it&#39;s not useful for me and kind of distracting. So... when you turn on this new option &amp;quot;Start Explore at Today&#39;s News&amp;quot; then the highlighted section is removed and the page starts from the usual Today&#39;s News section.&lt;/p&gt;
&lt;p&gt;I will keep adding more features to make X experience even better.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Using Composer 2.5 as the Worker inside Cursor</title>
    <link href="https://deepakness.com/raw/composer-2-5-worker/" />
    <updated>2026-07-10T11:28:19Z</updated>
    <id>https://deepakness.com/raw/composer-2-5-worker/</id>
    <summary>I keep using different model as the orchestrator, but Composer 2.5 is the best worker model inside Cursor.</summary>
    <content type="html">&lt;p&gt;Earlier I shared my experience about &lt;a href=&quot;https://deepakness.com/raw/grok-4-5-first-impressions/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;using the new Grok 4.5 model&lt;/a&gt; and also about my &lt;a href=&quot;https://deepakness.com/raw/cursor-orchestrator-worker/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;orchestrator + worker setup&lt;/a&gt; inside Cursor. I was using either GPT-5.5 or Opus 4.8 or even Fable 5 models as orchestrators, but my preferences have recently changed.&lt;/p&gt;
&lt;p&gt;Nowadays, I&#39;m mostly using Grok 4.5 as the orchestrator and sometimes even GPT-5.5 Terra. These models are pretty good at orchestrating bigger, complex tasks. I just add this below line in my prompts in Cursor, and it works flawlessly.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Delegate heavy works to the Composer 2.5 model.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In fact, this trick is working pretty well inside Claude Code as well. I use Fable 5 as the orchestrator and then include the below line in my prompt that hints the agent to use Sonnet 5 as the worker.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Delegate heavy works to the Sonnet 5 model.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Since Sonnet 5 is fast, the work is finished faster and often pretty low on the limits as well.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Grok 4.5 first impressions</title>
    <link href="https://deepakness.com/raw/grok-4-5-first-impressions/" />
    <updated>2026-07-09T00:00:00Z</updated>
    <published>2026-07-08T19:46:22Z</published>
    <id>https://deepakness.com/raw/grok-4-5-first-impressions/</id>
    <summary>Grok 4.5 is live, and here are my first impressions of the model.</summary>
    <content type="html">&lt;p&gt;Cursor &lt;a href=&quot;https://x.com/cursor_ai/status/2074915744999969059&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;partnered with SpaceXAI&lt;/a&gt; to train Grok 4.5 and the model &lt;a href=&quot;https://x.ai/news/grok-4-5&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;is now live&lt;/a&gt;. I just tried it inside Cursor and here are my first impressions:&lt;/p&gt;
&lt;p&gt;It&#39;s not as good as Opus/Fable models when it comes to frontend design related tasks. I asked it to create a few webpages, and the UI is decent but not very good. I will compare its UI design capabilities with GPT-5.5, which is not very good.&lt;/p&gt;
&lt;p&gt;Grok 4.5 is very fast when compared to the latest Opus or GPT models, even without the fast mode turned out. Also, it&#39;s reasonably priced at input $2 per million tokens and output at $6 per million tokens. As of now, I used around 13 million Grok 4.5 tokens inside Cursor, and it has costed me 2.6% of the monthly usage, as you see.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Grok 4.5 usage in Cursor&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/grok-4-5-first-impressions/grok-4-5-cursor.png&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As you see above, Grok 4.3 billed inside Cursor as API pricing, but the new Grok 4.5 comes in the Auto + Composer pool.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Grok 4.5 has currently &lt;a href=&quot;https://x.com/cursor_ai/status/2074915747302690991&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2x limits inside Cursor&lt;/a&gt; for a week, and is completely free inside Grok Build if you have a paid plan for SuperGrok or X, as announced by the xAI team &lt;a href=&quot;https://x.com/veggie_eric/status/2074919353481670978&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;in this post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Apart from this, the new model is &lt;a href=&quot;https://www.reddit.com/r/cursor/comments/1ur0f4b/comment/owcdisn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;1.5T mixture of experts model&lt;/a&gt;, trained from scratch.&lt;/p&gt;
&lt;p&gt;From my limited use, the model feels much better than Composer 2.5, and it feels like I am using GPT-5.5 inside Codex. It&#39;s fast and pretty good with non-frontend related tasks.&lt;/p&gt;
&lt;p&gt;They mention &lt;a href=&quot;https://cursor.com/blog/grok-4-5&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;in the blog post&lt;/a&gt; that:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Grok 4.5 and Composer 2.5 are two different model weight classes, and we&#39;re excited to support both sizes and weights. Composer 2.5 will remain offered, and we will release new models of this size going forward.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Loved this &lt;a href=&quot;https://x.com/rileybrown/status/2074944235577496004&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;pricing comparison of Grok 4.5&lt;/a&gt; with other popular models:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Grok 4.5 pricing comparison with other AI models&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/raw/grok-4-5-first-impressions/grok-4-5-pricing.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Jul 9, 2026&lt;/p&gt;
&lt;p&gt;The more I use Grok 4.5 the more I love it, and using it inside Cursor makes me feel I am using GPT-5.5 inside Codex. It&#39;s flawless and very reliable as well.&lt;/p&gt;
&lt;p&gt;I think, if you consider the pricing Grok 4.5 is currently the best AI model out there.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Cloudflare introduces Workers Cache</title>
    <link href="https://deepakness.com/raw/cf-workers-cache/" />
    <updated>2026-07-07T10:35:02Z</updated>
    <id>https://deepakness.com/raw/cf-workers-cache/</id>
    <summary>Cloudflare brings a new great feature and it&#39;s called Workers Cache, and it&#39;s going to help me significantly reduce my costs.</summary>
    <content type="html">&lt;p&gt;Cloudflare just introduced &lt;a href=&quot;https://developers.cloudflare.com/workers/cache/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Workers Cache&lt;/a&gt; which, basically, returns cached HTTP responses from the Worker without executing the Worker code first. And it&#39;s going to significantly lower down the running costs, at least for me.&lt;/p&gt;
&lt;p&gt;I found &lt;a href=&quot;https://x.com/Jilles/status/2074208431544697037&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;a great demo on X&lt;/a&gt;, about how it works.&lt;/p&gt;
&lt;p&gt;I&#39;m still learning about it and will soon implement to all my projects hosted on Cloudflare Workers. There must be more than 10 small-big projects hosted on Workers, and this is going to be a great weekend.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Updated to the macOS 27 Developer Beta 3</title>
    <link href="https://deepakness.com/raw/macos-27-db3/" />
    <updated>2026-07-07T04:37:32Z</updated>
    <id>https://deepakness.com/raw/macos-27-db3/</id>
    <summary>Just updated to the macOS 27 Golden Gate Developer Beta 3, and overall it&#39;s good.</summary>
    <content type="html">&lt;p&gt;I just updated my MacBook M2 Air to the latest macOS 27 Golden Gate Developer Beta 3 and loving it so far. Love the wallpaper and everything else.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;macOS 27 Golden Gate Developer Beta 3 on MacBook M2 Air&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/macos-27-db3/macos-27-db3.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;For some reason, I like macOS 27 Golden Gate more than the previous macOS 26 Tahoe. Even though 27 is in developer beta, it&#39;s still very good and feels better to use.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Cursor orchestrator and worker setup</title>
    <link href="https://deepakness.com/raw/cursor-orchestrator-worker/" />
    <updated>2026-07-03T02:03:00Z</updated>
    <id>https://deepakness.com/raw/cursor-orchestrator-worker/</id>
    <summary>A brief .cursor setup where a strong model orchestrates and Composer 2.5 standard subagents do the scoped work.</summary>
    <content type="html">&lt;p&gt;After &lt;a href=&quot;https://x.com/ericzakariasson/status/2072639126034137444&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this post from Eric&lt;/a&gt;, I wanted a simple Cursor setup where a strong model plans and delegates, and a cheaper worker does the actual edits. The pattern: pick your orchestrator in the model picker, add custom subagents pinned to &lt;code&gt;composer-2.5[fast=false]&lt;/code&gt;, and attach a manual rule only when you want delegation.&lt;/p&gt;
&lt;p&gt;Although, I am not using the Fable model, but it still works pretty well. First, I &lt;a href=&quot;https://x.com/DeepakNesss/status/2072824646500843888&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;tried the GPT-5.5-Medium&lt;/a&gt; model as the orchestrator, but later I shifted using the Opus-4.8-High as it seemed a bit better and cheaper in Cursor.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor orchestrator and worker setup&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/cursor-orchestrator-worker/cursor-orchestrator-worker.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Here&#39;s the folder structure:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.cursor/
├── agents/
│   ├── implementer.md
│   ├── auditor.md
│   └── verifier.md
└── rules/
    └── orchestrator-worker.mdc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;First, I created this file &lt;code&gt;.cursor/rules/orchestrator-worker.mdc&lt;/code&gt; with the following contents:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
description: Strong model orchestrates; Composer 2.5 standard subagents do scoped work. Apply manually with @orchestrator-worker.
---

# Orchestrator / worker mode

Activate only when this rule is attached.

## Models

- **Orchestrator (parent):** your strong model in the picker (e.g. `claude-opus-4-8-thinking-high`)
- **Workers:** `composer-2.5[fast=false]` – pinned in `.cursor/agents/`

## Parent

Plan, decompose, delegate, and review. Give each worker one concern, enough context, a definition of done, and a short report. Run independent pieces in parallel. Review before merging. Keep work on the parent when judgment is the whole job.

Do not spawn built-in `explore` or `generalPurpose` subagents – they default to Composer Fast.

## Workers

| Subagent      | Use for                                    |
| ------------- | ------------------------------------------ |
| `implementer` | Code edits, refactors, tests, file changes |
| `auditor`     | Read-only audits and exploration           |
| `verifier`    | Post-implementation review                 |
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then created the implementer subagent &lt;code&gt;.cursor/agents/implementer.md&lt;/code&gt; with the following contents:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
name: implementer
description: Implementation specialist. Use for code edits, refactors, tests, and file changes once a plan exists.
model: composer-2.5[fast=false]
---

You are the implementation worker.

- Execute the parent&#39;s plan: edit files, run targeted tests, fix failures.
- Follow existing project conventions before adding new patterns.
- Return a concise summary: what changed, tests run, blockers.
- Prefer the smallest correct diff. Do not replan unless blocked.
- Do not create git commits unless the parent asks.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then the auditor subagent &lt;code&gt;.cursor/agents/auditor.md&lt;/code&gt; with read-only access:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
name: auditor
description: Read-only auditor. Use for audits, exploration, and reviews instead of built-in explore.
model: composer-2.5[fast=false]
readonly: true
---

You are a read-only audit subagent.

- Explore assigned domains thoroughly. Never edit files.
- Report severity, location, finding, and recommendation for each issue.
- End with a brief domain summary.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Lastly, the verifier subagent &lt;code&gt;.cursor/agents/verifier.md&lt;/code&gt;, again with read-only access:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;---
name: verifier
description: Read-only reviewer. Use after implementation to check work matches the plan.
model: composer-2.5[fast=false]
readonly: true
---

You are a read-only verification subagent.

- Compare implementation against the parent&#39;s plan or acceptance criteria.
- Check tests cover the change when applicable.
- Return verdict (pass / pass with notes / fail) and gaps. Do not edit files.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because &lt;code&gt;model: composer-2.5&lt;/code&gt; alone was still resolving to Fast-mode, I have used &lt;code&gt;composer-2.5[fast=false]&lt;/code&gt; explicitly as the model string, as you see above.&lt;/p&gt;
&lt;p&gt;I only use this orchestrator-worker setup when needed, and not all the time. Here&#39;s how I do it:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;New Agent chat → pick the &lt;strong&gt;orchestrator model&lt;/strong&gt; in the model picker&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;@orchestrator-worker&lt;/code&gt; and my task&lt;/li&gt;
&lt;li&gt;Parent plans → &lt;code&gt;implementer&lt;/code&gt; codes → optional &lt;code&gt;verifier&lt;/code&gt; reviews&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I prompt something like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;@orchestrator-worker Refactor the auth module.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And for normal single-agent work, I would skip &lt;code&gt;@orchestrator-worker&lt;/code&gt; and use any model directly (mostly Composer 2.5 itself).&lt;/p&gt;
&lt;p&gt;Lastly, if you&#39;re using this you can also add your project-specific details anywhere it helps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;orchestrator-worker.mdc&lt;/code&gt;&lt;/strong&gt; – your orchestrator model slug, stack-specific delegation rules&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subagent files&lt;/strong&gt; – test commands, commit rules, security checks, framework conventions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt; (optional, repo root) – build commands, folder layout, code style; stays on without forcing orchestration&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rule is manual-only, so it doesn&#39;t affect every chat.&lt;/p&gt;
&lt;p&gt;If you&#39;re setting this up, just give the link to this post to your Cursor agent and ask it to set everything up for your project. And you can also &lt;a href=&quot;https://cursor.com/docs/subagents&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;visit Cursor&#39; docs about subagents&lt;/a&gt; for more info on how to set everything up in a better way.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Does AI makes you less productive?</title>
    <link href="https://deepakness.com/raw/ai-less-productive/" />
    <updated>2026-07-01T01:50:33Z</updated>
    <id>https://deepakness.com/raw/ai-less-productive/</id>
    <summary>Read this interesting post from Dominik Sobe about AI makes him work more but feel less accomplished.</summary>
    <content type="html">&lt;p&gt;Came across &lt;a href=&quot;https://x.com/sobedominik/status/2071881679317414325&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this post from Dominik Sobe on X&lt;/a&gt;, and liked how he explains that he gets to do more with AI but still feels less accomplished. I am going to copy the post content here:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AI lowkey fu**ed up my productivity in a way I didn’t expect and I’m not sure how to feel about it.&lt;/p&gt;
&lt;p&gt;On any given day:&lt;/p&gt;
&lt;p&gt;I code more than ever.&lt;/p&gt;
&lt;p&gt;I ship features faster than ever.&lt;/p&gt;
&lt;p&gt;I do more marketing than ever before.&lt;/p&gt;
&lt;p&gt;I even make slightly more money than before.&lt;/p&gt;
&lt;p&gt;Yet, I feel like I have achieved nothing at the end of the day.&lt;/p&gt;
&lt;p&gt;I go to bed lots of times lately feeling unaccomplished.&lt;/p&gt;
&lt;p&gt;There’s this lingering thought of I could’ve done more.&lt;/p&gt;
&lt;p&gt;Run more agents in parallel, run them while I’m eating, while being in the gym, heck they should do work while I sleep! You get the gist.&lt;/p&gt;
&lt;p&gt;It sometimes drives me nuts lol&lt;/p&gt;
&lt;p&gt;I remember days pre AI where I’d work on a feature for an entire week (that now takes me less than a day) and still go to bed feeling great and happy.&lt;/p&gt;
&lt;p&gt;Now, there’s seemingly never enough.&lt;/p&gt;
&lt;p&gt;What do I do to fix this? Anyone else having similar feelings?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like this post a lot.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Found this The Aptness of Anger paper</title>
    <link href="https://deepakness.com/raw/the-aptness-of-anger-notes/" />
    <updated>2026-06-30T07:51:17Z</updated>
    <id>https://deepakness.com/raw/the-aptness-of-anger-notes/</id>
    <summary>I am reading this interesting paper titled The Aptness of Anger by Amia Srinivasan and loving it so far.</summary>
    <content type="html">&lt;p&gt;YouTube recommended me &lt;a href=&quot;https://www.youtube.com/watch?v=P8KI3CzWLi0&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;this video&lt;/a&gt;, and then I discovered Amia Srinivasan&#39;s paper titled &lt;a href=&quot;https://discovery.ucl.ac.uk/id/eprint/1542193/1/The%20Aptness%20of%20Anger_Current.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;The Aptness of Anger&lt;/a&gt; and liked its abstract (copied below) so much that I decided to read it whole.&lt;/p&gt;
&lt;p&gt;While the paper is about a simple topic, it&#39;s still an interesting read (I&#39;m halfway through it). The main point of the paper is that getting angry about unfairness is a valid and correct response, even if the anger does not help solve the problem. Basically, the author argues that we should not only judge anger by whether it is &amp;quot;useful&amp;quot; but we should also respect anger when it is the truthful emotional response to an unjust world.&lt;/p&gt;
&lt;p&gt;If you love the topic, you&#39;ll love reading it.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Using Cursor Pro+ plan this time</title>
    <link href="https://deepakness.com/raw/using-cursor-pro-plus/" />
    <updated>2026-06-28T00:08:27Z</updated>
    <id>https://deepakness.com/raw/using-cursor-pro-plus/</id>
    <summary>Last month I subscribed to Cursor&#39;s Pro plan and loved it, so this month I&#39;ve got the Pro+ plan and loving it even more.</summary>
    <content type="html">&lt;p&gt;Last month, I &lt;a href=&quot;https://deepakness.com/raw/cursor-value-for-money/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;subscribed to Cursor&#39;s Pro plan&lt;/a&gt; for $20 a month and absolutely loved using the Composer 2.5 model. I used more than 700 million tokens on the plan with a mix of Auto, Composer 2.5, Composer 2.5 Fast, Opus 4.8, and GPT-5.5 models.&lt;/p&gt;
&lt;p&gt;So... this month I decided to get the Cursor&#39;s Pro+ plan for $60 a month, and it&#39;s been great so far. In just a day, I have used more than 175 million tokens across Composer 2.5 standard and fast models, as you see in the screenshot here.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cursor&#39;s Pro+ plan usage&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/using-cursor-pro-plus/pro-plus-usage.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;Currently, I am also subscribed to Claude $100 plan that I use mostly for frontend design and then use Composer 2.5 for everything else. I was also subscribed to Codex $100 plan, but the subscription ended a week ago, and I think I am good with the current setup (until next month, of course).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By the way, I track how I am currently using AI on this regularly updated page that you might find useful.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Coming back to the current setup, Composer 2.5 has been pretty good. I don&#39;t give it very large prompts but ask it to make small changes, and it&#39;s been great so far. This &lt;a href=&quot;https://saathi.fyi&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;saathi.fyi&lt;/a&gt; project that I am working on with &lt;a href=&quot;https://amitsarda.xyz&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Amit&lt;/a&gt;, is almost entirely built by Cursor after the initial frontend design by Claude.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Launching Minimal X 2.0</title>
    <link href="https://deepakness.com/raw/minimal-x-2-0/" />
    <updated>2026-06-24T03:41:36Z</updated>
    <id>https://deepakness.com/raw/minimal-x-2-0/</id>
    <summary>A major update to my Chrome extension that declutters X.com with simple toggles for ads, engagement noise, trends, and more.</summary>
    <content type="html">&lt;p&gt;I use X.com fairly often, but the interface keeps getting noisier – promoted posts, engagement counts, Grok buttons, the trends sidebar, chat drawers, and whatnot. I had already built &lt;a href=&quot;https://chromewebstore.google.com/detail/minimal-x-hide-xcom-right/bpneckmaohifnjgbdmmanchmdombmill&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Minimal X&lt;/a&gt; a while ago to hide some of that clutter, but v1 was pretty basic. It just ran always-on with no settings.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Minimal X 2.0 Chrome Extension&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/minimal-x-2-0/minimal-x-chrome-extension.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;So I rebuilt it as v2.0. Now there&#39;s a popup with toggles for every cleanup option, sensible defaults, and you can turn individual things on or off. By default it hides promoted posts, share buttons, Grok actions, Grok/Chat drawers, the right rail, and uses a compact icon-only left sidebar. You can also optionally hide engagement counts, the home composer, the new-post pill, and extra nav items like Grok, Premium, Creator Studio, and Articles.&lt;/p&gt;
&lt;p&gt;Some of the things v2 can do:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hide promoted timeline posts and Explore promotions&lt;/li&gt;
&lt;li&gt;Hide share buttons and Grok action buttons on posts&lt;/li&gt;
&lt;li&gt;Hide the right rail, including trends, verified orgs, and footer clutter&lt;/li&gt;
&lt;li&gt;Use a compact icon-only sidebar (notification badges still work)&lt;/li&gt;
&lt;li&gt;Optionally hide reply, repost, like, bookmark, and view counts&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&#39;s lightweight, runs only on x.com, and doesn&#39;t collect any data. Settings are saved with Chrome sync.&lt;/p&gt;
&lt;p&gt;I&#39;ve been using it daily for the last few days and the calmer timeline is honestly hard to go back from. If you try it, let me know what you think.&lt;/p&gt;
</content>
  </entry><entry>
    <title>I Bought a $100 Laptop – Mid 2014 MacBook Pro</title>
    <link href="https://deepakness.com/blog/mbp-mid-2014/" />
    <updated>2026-06-21T00:49:52Z</updated>
    <id>https://deepakness.com/blog/mbp-mid-2014/</id>
    <summary>Saw an ad and immediately bought an old MacBook Pro (Retina, 15-inch, Mid 2014), and I&#39;m super happy about it.</summary>
    <content type="html">&lt;p&gt;Two days ago, I was at home and ordered food online. I went to pre-approve the delivery on the apartment&#39;s app, and saw an ad selling an old MacBook Pro (Retina, 15-inch, Mid 2014, 16 GB RAM, 120 GB SSD) for only ₹12,000 (~$130) from another resident. I inquired immediately and went there to take a look at it.&lt;/p&gt;
&lt;p&gt;The laptop seemed in good condition, I used it for a bit, checked random stuff, and then was ready to buy. I was ready to pay the listed price, but then just asked if they could lower the price to ₹9,000 (~$100) and they agreed immediately. I, then, paid the price and took this 12-year-old laptop home, with its original charger.&lt;/p&gt;
&lt;p&gt;When I asked, their main reason for selling was that they weren&#39;t able to install newer apps – the laptop was still running macOS Big Sur, the last official update from Apple. For me, before my current MacBook Air M2, I had never used any Apple product, so I was just curious about this decade-old laptop.&lt;/p&gt;
&lt;p&gt;By the way, this is how the laptop looks. I absolutely love the backlit Apple logo here.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Apple MacBook Pro Mid-2014, Lit Apple Logo&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/blog/mbp-mid-2014/backlit-logo.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;After getting the laptop, I researched a bit about it and used the &lt;a href=&quot;https://dortania.github.io/OpenCore-Legacy-Patcher/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;OpenCore Legacy Patcher (OCLP)&lt;/a&gt; and upgraded to macOS Ventura 13.7.8 and it&#39;s running fine so far. I tried installing the Codex app and a few other apps on it and they all work as expected, no lag or slowness at all. Obviously, it&#39;s not as powerful as my M2 Air, but it&#39;s more than worth the price I paid.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;MacOS Ventura on Mid 2014 MacBook Pro via OpenCore&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/blog/mbp-mid-2014/macos-ventura.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;I haven&#39;t spent much time on it yet, but it seems like a good machine. It&#39;s heavy, but I can keep it open on my desk and use it for scraping or some long-running tasks, so I don&#39;t have to keep my main laptop running (Codex /goal, I&#39;m looking at you).&lt;/p&gt;
&lt;p&gt;I even tried installing &lt;a href=&quot;https://omarchy.deepakness.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Omarchy Linux&lt;/a&gt; on an external SSD connected to the laptop, and it works fine as expected. Here&#39;s a picture of it booted into the &lt;a href=&quot;https://omarchy.org&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Omarchy OS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Omarchy OS on MacBook Pro from Mid 2014&quot; decoding=&quot;async&quot; loading=&quot;lazy&quot; src=&quot;https://assets.deepakness.com/blog/mbp-mid-2014/omarchy.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;The speakers aren&#39;t great, but that&#39;s not an issue because that&#39;s not what I got it for.&lt;/p&gt;
&lt;p&gt;For now, I will keep exploring things I can do with this second laptop.&lt;/p&gt;
&lt;p&gt;Let&#39;s see how it goes.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Best web scraping workflow using Codex</title>
    <link href="https://deepakness.com/raw/codex-data-scraping/" />
    <updated>2026-06-18T03:11:09Z</updated>
    <id>https://deepakness.com/raw/codex-data-scraping/</id>
    <summary>I think, I have finally discovered the best way to scrape data from the web with the help of Codex.</summary>
    <content type="html">&lt;p&gt;I needed to scrape 10s of thousands of rows of data from a website with strict rate-limits and all. Earlier, I would have used a tool like Octoparse for this, but this time I asked OpenAI&#39;s Codex to do it.&lt;/p&gt;
&lt;p&gt;I asked the agent to scrape the website with required data points by sending it a very simple 1 line prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;scrape all pages from XYZ website with all important data points, start this as a /goal and don&#39;t stop until all required and important information is scraped.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img alt=&quot;Web scraping using Codex&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/codex-data-scraping/scraping-using-codex.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;And Codex started the process as goal that &lt;strong&gt;ran for more than 13 hours 46 minutes and used only 757k tokens&lt;/strong&gt;. Because AI itself wasn&#39;t scraping the website, but Codex generated and executed the scraper, monitored failures, patched the code, handled 404/410 cases, adjusted for rate limits, added fallback logic, exported the dataset, and ran strict validation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;write code → run it → inspect errors → patch code → resume → validate → repeat&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Next time, if I have to refresh the scraped data from the website, I just have to run &lt;code&gt;python scraper.py&lt;/code&gt; and it will run without errors as Codex has perfected the script now.&lt;/p&gt;
&lt;p&gt;Cool, right?&lt;/p&gt;
</content>
  </entry><entry>
    <title>Access Telegram without VPN from India</title>
    <link href="https://deepakness.com/raw/telegram-banned-in-india/" />
    <updated>2026-06-17T06:40:11Z</updated>
    <id>https://deepakness.com/raw/telegram-banned-in-india/</id>
    <summary>After the Indian government banned Telegram in India, there&#39;s a legit way to access Telegram without using VPN.</summary>
    <content type="html">&lt;p&gt;The Indian government has &lt;a href=&quot;https://x.com/durov/status/2066879467054649639&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;banned Telegram in India&lt;/a&gt; for a limited time and the ban is implemented to prevent organized cheating rackets and misinformation ahead of the NEET-UG re-examination. I don&#39;t think this is a sensible solution, because my work is affected as I did all my work related communication in Telegram.&lt;/p&gt;
&lt;p&gt;While I have now fully moved to Signal, here&#39;s a trick to still use Telegram in India without using VPN but using the &lt;a href=&quot;https://developers.cloudflare.com/1.1.1.1/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Cloudflare 1.1.1.1 DNS resolver&lt;/a&gt;. I tried this both on my macOS laptop and also on my Android device, and it works as expected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;On my macOS device:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I &lt;a href=&quot;https://one.one.one.one&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;downloaded the macOS app&lt;/a&gt; for my device and installed it and just connected as &lt;code&gt;Traffic and DNS (UDP)&lt;/code&gt; as you see in the screenshot here.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Cloudflare Proxy connected on Cloudflare&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/telegram-banned-in-india/cloudflare-proxy-connected-macos.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;After that I opened the Telegram app, and it got connected and started working after a few seconds.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;On my Android device:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I already had the 1.1.1.1 app installed on my Android device, but that&#39;s not available on Google Play Store anymore. However, there&#39;s a very simple way to &lt;a href=&quot;https://developers.cloudflare.com/1.1.1.1/setup/android/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;do a manual setup on Android&lt;/a&gt; in their official docs that you can follow.&lt;/p&gt;
&lt;p&gt;After the setup, just open the Telegram app, and it works as expected.&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
</content>
  </entry><entry>
    <title>No Thanks, ChatGPT 3.0.0 is here</title>
    <link href="https://deepakness.com/raw/no-thanks-chatgpt-3-0-0/" />
    <updated>2026-06-11T10:22:21Z</updated>
    <id>https://deepakness.com/raw/no-thanks-chatgpt-3-0-0/</id>
    <summary>I just released a new version of the No Thanks, ChatGPT Chrome extension and it now also supports exporting chats.</summary>
    <content type="html">&lt;p&gt;I just released v3.0.0 of &lt;strong&gt;No Thanks, ChatGPT&lt;/strong&gt;, my small Chrome extension that removes annoying popups and interruptions on ChatGPT.&lt;/p&gt;
&lt;p&gt;Earlier, it mostly did one thing: keep ChatGPT quieter when browsing while logged out. It dismissed things like the &amp;quot;Thanks for trying ChatGPT&amp;quot; dialog, signup prompts, cookie banners, sidebar upsells, and similar interruptions.&lt;/p&gt;
&lt;p&gt;But now it does one more useful thing.&lt;/p&gt;
&lt;p&gt;You can &lt;strong&gt;export ChatGPT conversations&lt;/strong&gt; locally.&lt;/p&gt;
&lt;p&gt;The new version adds a small export button inside ChatGPT, and the extension popup also has the same export options. You can export the currently loaded conversation as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;TXT&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It keeps clear User and Assistant turns, and tries to preserve common formatting like headings, lists, links, tables, and code blocks.&lt;/p&gt;
&lt;p&gt;I wanted to keep this privacy-friendly, so the export happens locally in the browser. There is no backend, no analytics, no storage permission, no downloads permission, and no external network request. It just reads the conversation already rendered on the page when you click Copy or Export.&lt;/p&gt;
&lt;p&gt;I also updated the extension icon because it is now more than just a &amp;quot;no thanks&amp;quot; popup blocker. It is still a tiny extension, but now it feels more like a useful ChatGPT utility.&lt;/p&gt;
&lt;p&gt;You can get it from the &lt;a href=&quot;https://chromewebstore.google.com/detail/no-thanks-chatgpt/nmgfghmecclnpobkngegmeaimijaojag&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Chrome Web Store here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And the source is on GitHub: &lt;a href=&quot;https://github.com/deepakness/no-thanks-chatgpt&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/deepakness/no-thanks-chatgpt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I will be adding more features soon.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Hardening a VPS with Tailscale</title>
    <link href="https://deepakness.com/raw/hetzner-vps-tailscale/" />
    <updated>2026-06-08T03:28:52Z</updated>
    <id>https://deepakness.com/raw/hetzner-vps-tailscale/</id>
    <summary>Hardening a public VPS by moving admin panels behind Tailscale while keeping websites public.</summary>
    <content type="html">&lt;p&gt;I recently hardened this Hetzner VPS after realizing that keeping admin panels open to the whole internet is just unnecessary risk. And honestly, &lt;a href=&quot;https://x.com/levelsio/status/2033546675063554213&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;@levelsio gave me the idea&lt;/a&gt; to use Tailscale from a few posts he made about this on X.&lt;/p&gt;
&lt;p&gt;On this VPS, I still have a few WordPress sites hosted through a control panel, and I wanted to make the server safer without deleting websites, moving data, or breaking normal access.&lt;/p&gt;
&lt;p&gt;The main idea was simple: websites stay public, admin access becomes private. Ports 80 and 443 stay open because visitors need them. DNS, public web traffic, nothing changes from the outside.&lt;/p&gt;
&lt;p&gt;But the control panel on its admin port, the web server admin panel, and SSH don&#39;t need to be open to every random scanner on the internet. Those are management interfaces, not public website features.&lt;/p&gt;
&lt;p&gt;Tailscale gives the VPS a private network address that only approved devices can reach. So I can open the control panel from my computer through the Tailscale IP, but someone scanning the public VPS IP cannot hit the login page anymore.&lt;/p&gt;
&lt;p&gt;The important part is the order. Don&#39;t close public SSH first – that&#39;s how you lock yourself out.&lt;/p&gt;
&lt;p&gt;The safe order I followed:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;take a snapshot first&lt;/li&gt;
&lt;li&gt;then install Tailscale on the VPS and add it to your account (disable key expiry)&lt;/li&gt;
&lt;li&gt;install Tailscale on your local machine&lt;/li&gt;
&lt;li&gt;test that the control panel, web server admin, and SSH all work through the Tailscale IP&lt;/li&gt;
&lt;li&gt;disable anything unused like FTP&lt;/li&gt;
&lt;li&gt;restrict the admin ports&lt;/li&gt;
&lt;li&gt;and only after all of that, restrict public SSH&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For Tailscale, I used &lt;code&gt;--accept-dns=false&lt;/code&gt; because I didn&#39;t want it changing DNS behavior on the VPS. This server hosts websites and mail, so the change needed to be narrow: add private access, don&#39;t surprise anything else.&lt;/p&gt;
&lt;p&gt;For SSH, I used a rollback safety net: a systemd timer that automatically reopens public SSH after 3 minutes if I got locked out. After removing public SSH, I immediately tested both Tailscale SSH (should work) and public SSH (should fail). Only after confirming Tailscale SSH works, cancel the rollback timer.&lt;/p&gt;
&lt;p&gt;A few things to remember: keep cloud console/rescue access available as a backdoor, keep Tailscale running on your machine before trying SSH or admin panels, firewall rules aren&#39;t active until you reload, and always test websites after any firewall change.&lt;/p&gt;
&lt;p&gt;This isn&#39;t the same as rebuilding a compromised server. It&#39;s a practical hardening pass. But for a VPS that needs to keep running websites, it&#39;s a big improvement: keep the public web public, and make the sensitive admin stuff reachable only from your own devices.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Using the Composer 2.5 model in Pi agent harness</title>
    <link href="https://deepakness.com/raw/pi-composer-2-5/" />
    <updated>2026-06-02T14:25:47Z</updated>
    <id>https://deepakness.com/raw/pi-composer-2-5/</id>
    <summary>The best way to use Composer 2.5 inside the Pi coding agent harness via official Cursor agent SDK.</summary>
    <content type="html">&lt;p&gt;Cursor released the Composer 2.5 model a while ago, and it&#39;s very capable model while being super cheap. And since I also love the &lt;a href=&quot;https://deepakness.com/blog/pi-agent-setup/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pi coding agent&lt;/a&gt;, I wanted to use the Composer 2.5 model inside Pi and found the perfect solution for it.&lt;/p&gt;
&lt;p&gt;It&#39;s called &lt;a href=&quot;https://github.com/fitchmultz/pi-cursor-sdk&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;pi-cursor-sdk&lt;/a&gt; and is created by &lt;a href=&quot;https://x.com/fitchmultz&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Mitch Fultz&lt;/a&gt;. It uses the official Cursor SDK so &lt;a href=&quot;https://x.com/fitchmultz/status/2061779337549087208&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Cursor&#39;s agent loop and tools are still used&lt;/a&gt; when using the model via the Pi agent. And it&#39;s a great thing because Cursor has one of the best agent harnesses out there.&lt;/p&gt;
&lt;p&gt;I have been using it for the last few days, and it works flawlessly.&lt;/p&gt;
</content>
  </entry><entry>
    <title>Trying the new MiniMax M3 model via OpenCode</title>
    <link href="https://deepakness.com/raw/trying-minimax-m3/" />
    <updated>2026-06-02T06:11:23Z</updated>
    <id>https://deepakness.com/raw/trying-minimax-m3/</id>
    <summary>MiniMax M3 model was released a day ago and it&#39;s a good model, especially for UI design.</summary>
    <content type="html">&lt;p&gt;MiniMax M3 was &lt;a href=&quot;https://www.minimax.io/blog/minimax-m3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;released a day ago&lt;/a&gt;, and currently it&#39;s available in OpenCode for free for the last 2-3 days (yes, from even before the release). I, finally, gave it a try and it&#39;s so good, at least at UI design.&lt;/p&gt;
&lt;p&gt;For example, &lt;a href=&quot;https://incomparable-concha-d82f3f.netlify.app&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;I created this website&lt;/a&gt; using &lt;a href=&quot;https://x.com/DeepakNesss/status/2061440252787741002&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;just two prompts&lt;/a&gt; (will share below) and it looks stunning. I am damn sure that Codex could never do this, and it&#39;s just Opus 4.8 level design but a lot cheaper. I have also taken a full page screenshot that you see here.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;A personal website design by the MiniMax M3 model&quot; decoding=&quot;async&quot; loading=&quot;eager&quot; fetchpriority=&quot;high&quot; src=&quot;https://assets.deepakness.com/raw/trying-minimax-m3/personal-website-by-minimax-m3.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;And if you&#39;re curious, prompts were:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt 1:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;create a stunning personal website for a developer. use dummy info. don&#39;t use any framework.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prompt 2:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;make it in light mode and don&#39;t use serif fonts. and make the design and ui even better.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After seeing it work great at the UI design, I asked it to &lt;a href=&quot;https://x.com/DeepakNesss/status/2061687006842020265&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;redesign the entire dashboard&lt;/a&gt; for a new project I am working on, and it did a great job. I approved the plan and left it overnight, where it should have worked for a few hours and then when I woke up in the morning, it was ready. It had several minor errors which Codex quickly fixed, and I loved the overall UI and UX it did. I will soon be merging the new branch to the main.&lt;/p&gt;
&lt;p&gt;For all these things, I used it for free via OpenCode (for a limited time), but if you wanted to try MiniMax M3, they have a very generous plan on their official website. Their &lt;a href=&quot;https://platform.minimax.io/docs/guides/pricing-token-plan&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;$20/mo plan&lt;/a&gt; can get you up to ~1.6 billion tokens when you use the new M3 model. MiniMax has also released &lt;a href=&quot;https://agent.minimax.io/download&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;a desktop app called MiniMax Code&lt;/a&gt; and is currently available for macOS as well as Windows. It looks very similar to the Codex app, though.&lt;/p&gt;
&lt;p&gt;By the way, since MiniMax M3 is an open-weight model, you can also try the new model via any other inference provider like OpenRouter and others.&lt;/p&gt;
</content>
  </entry>
</feed>
