<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Alexandru Ionut Antiu]]></title><description><![CDATA[Technology, Startups and other Entrepreneurial Experiments. ]]></description><link>https://substack.antiu.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ctky!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435c4d21-b046-4bf6-abe8-42b1ad1e14cf_100x100.png</url><title>Alexandru Ionut Antiu</title><link>https://substack.antiu.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 10 Apr 2026 20:28:27 GMT</lastBuildDate><atom:link href="https://substack.antiu.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Alexandru Ionut Antiu]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[antiu@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[antiu@substack.com]]></itunes:email><itunes:name><![CDATA[Alexandru Ionut Antiu]]></itunes:name></itunes:owner><itunes:author><![CDATA[Alexandru Ionut Antiu]]></itunes:author><googleplay:owner><![CDATA[antiu@substack.com]]></googleplay:owner><googleplay:email><![CDATA[antiu@substack.com]]></googleplay:email><googleplay:author><![CDATA[Alexandru Ionut Antiu]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Hidden Prompt Injection: Why Agentic AI Browsers Aren't Safe for Sensitive Data—Yet]]></title><description><![CDATA[How hidden instructions in web content can hijack AI assistants, bypass security boundaries, and put your credentials at risk]]></description><link>https://substack.antiu.com/p/hidden-prompt-injection-why-agentic</link><guid isPermaLink="false">https://substack.antiu.com/p/hidden-prompt-injection-why-agentic</guid><dc:creator><![CDATA[Alexandru Ionut Antiu]]></dc:creator><pubDate>Thu, 23 Oct 2025 09:20:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sCsa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>TL;DR: Hidden prompt injections are now the <strong>#1 emerging LLM risk (OWASP)</strong>. Researchers showed agentic browsers (e.g., ChatGPT Atlas, Perplexity Comet) can <strong>silently execute invisible instructions</strong> from web pages and act <strong>with your logged-in privileges</strong>. Until stronger safeguards land, <strong>isolate agentic browsing</strong> and <strong>keep real credentials out</strong>. This post explains <strong>how hidden prompt injections work</strong>, <strong>why they bypass classic web defenses</strong>, and <strong>what to do today </strong>to keep sensitive accounts safe.</p><p>A new class of AI-powered browsers (OpenAI&#8217;s ChatGPT Atlas, Perplexity&#8217;s Comet, others) can read all the text on a page&#8212;including text you can&#8217;t see&#8212;and then take actions on your behalf. Malicious instructions hidden in that content can hijack the assistant and, through your logged-in session, reach email, banking, or cloud data. <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP now ranks prompt injection as the #1 emerging risk</a> for LLM apps; even OpenAI&#8217;s CISO calls it an &#8220;unsolved frontier.&#8221; This isn&#8217;t theoretical&#8212;<a href="https://brave.com/blog/ai-browser-security-prompt-injection/">Brave&#8217;s researchers have already shown working exploits</a>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.antiu.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>What &#8220;hidden prompt injection&#8221; actually is</h3><p>Hidden prompt injection embeds instructions inside web content&#8212;CSS-hidden text, HTML comments, faint text inside images, even base64 blobs&#8212;that an AI assistant reads as part of its task. Because current LLMs process &#8220;instructions + data&#8221; together, the agent can&#8217;t reliably distinguish the user&#8217;s intent from the page&#8217;s &#8220;intent,&#8221; and may obey the page instead. <a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/">OWASP&#8217;s LLM Top 10</a> documents both direct (user-supplied) and indirect (content-supplied) variants, with likely impacts ranging from data exfiltration to unauthorized actions across connected tools.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sCsa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sCsa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sCsa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103352,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://substack.antiu.com/i/176904202?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sCsa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!sCsa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44b61a12-bf4c-4812-bbe7-0a22e0f62234_1536x1024.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Why agentic browsers amplify the blast radius</h3><p>Agentic modes hand the model three ingredients at once: navigation tools, your authenticated cookies, and a natural-language control channel. Once an agent accepts hidden instructions from a page, classic browser defenses like same-origin policy or CORS no longer apply&#8212;the agent is acting as <em>you</em>. <a href="https://brave.com/blog/ai-browser-security-prompt-injection/">Brave&#8217;s security team showed that a single malicious Reddit comment could steer Comet</a> to fetch a one-time passcode from Gmail and leak it off-site, all triggered by a simple &#8220;summarize this page&#8221; request. No exploit kits, no downloads&#8212;just words.</p><h3>Proof points</h3><ul><li><p><strong>Comet (Perplexity).</strong> <a href="https://brave.com/blog/ai-browser-security-prompt-injection/">Brave&#8217;s August disclosure</a> described &#8220;indirect prompt injection&#8221; that scripted Comet to (1) retrieve the user&#8217;s email, (2) trigger an OTP flow, (3) read the OTP in Gmail, and (4) exfiltrate it&#8212;kicked off by summarizing a booby-trapped post. Their <a href="https://brave.com/blog/hidden-prompts-ai-browsers/">October follow-up</a> showed &#8220;unseeable&#8221; prompts hidden in screenshots that Comet&#8217;s OCR happily read as commands.</p></li><li><p><strong>Fellou &amp; peers.</strong> The same Brave research mapped navigation-based paths in other AI browsers, again demonstrating cross-domain actions once the agent trusts page content as instructions.</p></li><li><p><strong>&#8220;CometJacking.&#8221;</strong> <a href="https://www.layerxsecurity.com/blog/cometjacking-prompt-injection/">LayerX researchers</a> documented a link-only vector where crafted URL parameters nudged Comet into consulting memory/connectors (Gmail, Calendar) and exfiltrating results&#8212;payloads encoded to slip past filters.</p></li><li><p><strong>Atlas (OpenAI).</strong> Independent testers pulled off benign but real prompt-injection pranks (forcing Atlas to output &#8220;Trust No AI,&#8221; change window chrome). During the Atlas launch briefing, <a href="https://www.youtube.com/watch?v=atlas-security-briefing">OpenAI&#8217;s CISO, Dane Stuckey, admitted prompt injection remains a &#8220;frontier, unsolved security problem&#8221;</a>, even with red-teaming, logged-out mode, and watch mode defenses.</p></li></ul><h3>What OpenAI and Perplexity say they&#8217;re doing</h3><ul><li><p><strong>OpenAI Atlas.</strong> Stuckey highlights layered mitigations: extensive red-teaming, training data tuned to ignore malicious instructions, logged-out mode (no privileged cookies), watch mode (keeps focus on sensitive sites), and additional guardrails. Yet OpenAI still frames prompt injection as an active, unsolved risk.</p></li><li><p><strong>Perplexity Comet.</strong> <a href="https://www.perplexity.ai/hub/blog/comet-security-update-mitigating-prompt-injection">Perplexity&#8217;s security update</a> outlines a defense-in-depth plan: prompt-injection classifiers, clearer separation between user intent and untrusted content, tool-level guardrails, and user notifications when the agent attempts risky actions. They likewise concede the problem is industry-wide and ongoing.</p></li></ul><h3>The stakes for companies and government</h3><ul><li><p><strong>Security.</strong> Hidden prompts let a third-party page steer an agent carrying your identity, bypassing human judgment and traditional browser boundaries. That&#8217;s a novel cross-site risk class.</p></li><li><p><strong>Governance.</strong> OWASP&#8217;s LLM Top 10 now places prompt injection at LLM01; their guidance stresses separating trusted instructions from untrusted content, enforcing least privilege, and keeping humans in the loop.</p></li><li><p><strong>Public trust.</strong> Vendors are disclosing mitigations, but the consensus&#8212;including from those shipping these products&#8212;is cautious: treat agentic browsing as dangerous until enforceable controls exist.</p></li></ul><h3>What to do now (practical, layered playbook)</h3><h5>For individuals &amp; teams</h5><ol><li><p><strong>Isolate sessions.</strong> Separate profile/VM (<strong>don&#8217;t try it on your corporate work laptop</strong>); keep sensitive accounts <strong>logged out</strong> when using agent features.</p></li><li><p><strong>Least privilege.</strong> Don&#8217;t grant file system, email, or cloud-drive access unless essential; <strong>disable auto-actions</strong>.</p></li><li><p><strong>Require approvals.</strong> Manual confirm for any cross-site/account action; prefer <strong>watch/confirm</strong> modes.</p></li><li><p><strong>Assume hostile content.</strong> Avoid summarizing user-generated pages/screenshots while logged into sensitive services.</p></li><li><p><strong>Harden identities.</strong> Use phishing-resistant MFA; monitor sessions; <strong>rotate credentials</strong> if you previously enabled connectors.</p></li><li><p><strong>Track patches.</strong> Follow Brave/OpenAI/Perplexity advisories; update aggressively.</p></li></ol><h5>For developers building with agents</h5><ul><li><p><strong>Separate roles.</strong> Never merge <em>user intent</em> and <em>page content</em> into one prompt. Treat page content as <strong>untrusted</strong>; validate actions against stated goals.</p></li><li><p><strong>Constrain capabilities.</strong> Origin-scoped cookies, per-site creds, time-boxed tokens; <strong>human-in-the-loop</strong> for money/email/data edits.</p></li><li><p><strong>Filter in &amp; out.</strong> Detect hidden/encoded prompts (CSS spans, HTML comments, base64, Unicode tricks). Use output policy checks to block cross-origin/out-of-scope actions.</p></li><li><p><strong>Design for failure.</strong> Log tool calls; add kill-switches and safe defaults; surface what the agent plans <strong>before</strong> it acts.</p></li></ul><p>Agentic browsing is promising&#8212;and not ready for interesting work. Evidence shows hidden prompts can still steer assistants beyond the user&#8217;s intent, and long-standing web boundaries cannot contain the blast radius once the agent acts with your identity. Until the ecosystem matures, run agentic browsers with strict isolation and least privilege. Treat every page as untrusted input, because that is what it is. As <a href="https://www.youtube.com/watch?v=atlas-security-briefing">OpenAI&#8217;s CISO put it</a>, prompt injection remains a &#8220;frontier, unsolved&#8221; problem; </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.antiu.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[ Vibe Coding: On the Seduction and Risks of AI-Powered Development]]></title><description><![CDATA[The Feeling of Coding vs. the Act of Understanding]]></description><link>https://substack.antiu.com/p/vibe-coding-on-the-seduction-and</link><guid isPermaLink="false">https://substack.antiu.com/p/vibe-coding-on-the-seduction-and</guid><dc:creator><![CDATA[Alexandru Ionut Antiu]]></dc:creator><pubDate>Mon, 05 May 2025 13:35:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2n67!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>"Vibe coding" is the latest trend sweeping the tech industry. It's coding by feel&#8212;relying heavily on powerful AI-driven tools such as Cursor (a deeply integrated VSCode fork) and Cline (a more expensive but robust VSCode extension). Developers today proudly share benchmarks and stats from platforms like OpenRouter, which just last week saw token usage explode, underscoring how integral AI tools have become in daily coding routines.</p><p>In short, lots of people are trying and they love vibe coding. You type, hit Enter, and watch your codebase materialize. It's fast, it's seductive, and it feels incredibly productive.</p><p>But here's the catch&#8212;it's also a trap.</p><h4>The Trap: Illusion vs. Reality</h4><p>AI-generated code isn't inherently problematic. In fact, it&#8217;s impressively capable. What&#8217;s dangerous is its uncanny ability to fool you into thinking you're fully in control, when in reality, you're often just approving confident-sounding spaghetti code.</p><p>Tools like Cursor and Claude deliver functionality rapidly, but they lack genuine understanding. They replicate patterns they've seen but can't truly invent or innovate. As a result, you might find yourself stuck debugging code nobody truly understands&#8212;including the AI that wrote it.</p><p>Additionally, vibe coding can inadvertently introduce security vulnerabilities, as AI-generated code often neglects critical security considerations, potentially leaving applications exposed to breaches.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2n67!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2n67!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 424w, https://substackcdn.com/image/fetch/$s_!2n67!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 848w, https://substackcdn.com/image/fetch/$s_!2n67!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 1272w, https://substackcdn.com/image/fetch/$s_!2n67!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2n67!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic" width="867" height="624" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:624,&quot;width&quot;:867,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148322,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://substack.antiu.com/i/162885927?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2n67!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 424w, https://substackcdn.com/image/fetch/$s_!2n67!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 848w, https://substackcdn.com/image/fetch/$s_!2n67!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 1272w, https://substackcdn.com/image/fetch/$s_!2n67!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3bd9905f-287c-4191-96a0-2c2362284155_867x624.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"></figcaption></figure></div><h4>Grounded Approach: How to Use AI</h4><p>Despite these risks, AI tools are undeniably powerful when used thoughtfully. In my experience, they're fantastic for:</p><ul><li><p>Proof-of-concept work</p></li><li><p>Developing small components in unfamiliar languages</p></li><li><p>Understanding new concepts from existing codebases</p></li></ul><p><strong>The secret is to never fully outsource your critical thinking to AI.</strong> Every line of AI-generated code must pass rigorous review. You must understand the underlying logic, the potential pitfalls, and the architectural implications.</p><p>The introduction of these AI tools also signals a shift in what it means to be a software engineer. Specialization in a single domain like frontend or iOS is no longer sufficient. Developers need broader awareness&#8212;spanning APIs, backend infrastructure, networking, operating systems, and even hardware. AI demands greater breadth of knowledge, not less.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wOVO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wOVO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 424w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 848w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 1272w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wOVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic" width="700" height="1062" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1062,&quot;width&quot;:700,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77698,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://substack.antiu.com/i/162885927?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wOVO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 424w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 848w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 1272w, https://substackcdn.com/image/fetch/$s_!wOVO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F188927ab-9aaf-4dbe-8ffa-7f3348678e30_700x1062.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Programmers Are Not Going Anywhere</h4><p>The recent attempted acquisition of Windsurf, a startup claiming "fully autonomous software development," is a prime example of why human developers remain relevant. </p><p>Instead, the reality is clear: AI tools are great copilots.  They enhance your productivity but also heighten the need for judgment, responsibility, and comprehensive understanding across the tech stack.</p><p>Ultimately, vibe coding feels great, but only if you remember to keep your feet firmly planted on the ground&#8212;and your eyes wide open.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://substack.antiu.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Got DeepSeek R1 to run locally on macOS: A Setup Guide]]></title><description><![CDATA[Like pretty much everyone else in tech last week, I was caught off guard (in a good way) by DeepSeek&#8217;s latest release: DeepSeek R1, a new &#8220;reasoning model&#8221; that&#8217;s been generating a lot of buzz.]]></description><link>https://substack.antiu.com/p/got-deepseek-r1-to-run-locally-on</link><guid isPermaLink="false">https://substack.antiu.com/p/got-deepseek-r1-to-run-locally-on</guid><dc:creator><![CDATA[Alexandru Ionut Antiu]]></dc:creator><pubDate>Tue, 28 Jan 2025 21:20:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jqtL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Like pretty much everyone else in tech last week, I was caught off guard (in a good way) by DeepSeek&#8217;s latest release: <strong>DeepSeek R1</strong>, a new &#8220;reasoning model&#8221; that&#8217;s been generating a lot of buzz. The biggest hook for me was the promise of local, open-source-esque usage&#8212;turns out it&#8217;s not truly open-source in the strict sense (you don&#8217;t get the raw model-building process), but it&#8217;s still free to use. Think of it as the &#8220;freeware&#8221; version of open source.</p><p>DeepSeek positions R1 as a competitor to other large language models, similar to OpenAI&#8217;s &#8220;o1.&#8221; I won&#8217;t dive into the nitty-gritty of <em>how</em> DeepSeek R1 was built (that&#8217;d be a longer read), but if you&#8217;re curious to try it out on your own machine&#8212;especially for privacy or experimentation reasons&#8212;read on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jqtL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqtL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 424w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 848w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 1272w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic" width="1080" height="1350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1350,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88633,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jqtL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 424w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 848w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 1272w, https://substackcdn.com/image/fetch/$s_!jqtL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d0b8bf0-93d3-42db-afb6-64bfe39c0b39_1080x1350.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p><strong>Why Run DeepSeek R1 Locally?</strong></p><p>1. <strong>No Rate Limits:</strong> No messing around with API quotas or billing.</p><p>2. <strong>Privacy:</strong> Your queries stay on your own hardware.</p><p>3. <strong>Experimentation:</strong> Tweak and test to your heart&#8217;s content without needing a server connection.</p><p><strong>Why Distilled?</strong></p><p>Right off the bat, I&#8217;m using a <strong>distilled</strong> version of DeepSeek R1. Why? Because the full-blown 671B-parameter model needs <strong>6 <a href="https://www.nvidia.com/en-us/data-center/a100/">NVIDIA A100 80GB GPUs</a></strong> (and for the &#8220;real deal,&#8221; you might need up to <strong>16</strong> of those monsters). With each A100 going for 17k&#8211;20k USD, that&#8217;s roughly <strong>100k&#8211;120k</strong> in GPU gear alone&#8212;so you&#8217;re practically flirting with the cost of a nice house down payment just to run the original. Yeah&#8230; maybe next time.</p><p><strong>Step 1: Install Ollama</strong></p><p>Head to <a href="https://ollama.com">ollama.com</a> and download the installer for macOS, Linux or Windows.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mLv-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mLv-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 424w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 848w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 1272w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mLv-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png" width="512" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:512,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:87791,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mLv-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 424w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 848w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 1272w, https://substackcdn.com/image/fetch/$s_!mLv-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbac94691-7b4b-4f93-9be8-8e0ee86e02c5_512x612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Run the Ollama installer on macOS/Linux/Windows</figcaption></figure></div><p><strong>Step 2: Pull the DeepSeek R1 Model</strong></p><p>DeepSeek R1 is <em>huge</em>, so if you&#8217;re on a laptop, you will run a distilled model (more on that in a second).</p><pre><code>ollama run deepseek-r1:8b</code></pre><p>If you haven&#8217;t got it locally, Ollama will download it for you (my download stalled a few times, but re-running picked up where it left off).</p><p>Smaller models typically run faster&#8212;and play nicer with laptops like my M1 Pro MacBook (32GB RAM). You can find a complete list of distilled models and their requirements <a href="https://github.com/deepseek-ai/DeepSeek-R1">here</a>. But basically, the bigger, the better AI.</p><pre><code># Full model (requires significant resources)
ollama run deepseek-r1:671b

# Distilled models (more practical for local use)
ollama run deepseek-r1:1.5b  # DeepSeek-R1-Distill-Qwen-1.5B
ollama run deepseek-r1:7b    # DeepSeek-R1-Distill-Qwen-7B
ollama run deepseek-r1:8b    # DeepSeek-R1-Distill-Llama-8B
ollama run deepseek-r1:14b   # DeepSeek-R1-Distill-Qwen-14B
ollama run deepseek-r1:32b   # DeepSeek-R1-Distill-Qwen-32B
ollama run deepseek-r1:70b   # DeepSeek-R1-Distill-Llama-70B</code></pre><p><strong>Step 3: Open Web UI</strong></p><p>For the Web Chat GUI you&#8217;ll need Docker running, then pop open a terminal and run:</p><pre><code><code>docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main</code></code></pre><p>Once that finishes, head to </p><pre><code>http://localhost:3000</code></pre><p> in your browser to interact with DeepSeek&#8217;s model. Everything stays on your machine: no surprise rate limits, no prying eyes on your prompts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!y_OG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!y_OG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 424w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 848w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 1272w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!y_OG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png" width="1456" height="906" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:906,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:293390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!y_OG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 424w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 848w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 1272w, https://substackcdn.com/image/fetch/$s_!y_OG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe24c262b-31cd-45fd-9e4e-119ca959dad1_1862x1159.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">DeepSeek running queries locally</figcaption></figure></div><div><hr></div><p>DeepSeek R1 (distilled versions, at least) is a fun playground for tech/AI enthusiasts who want to tinker locally. It&#8217;s not going to beat the absolutely massive GPUs-and-jet-fuel version, but it&#8217;s a heck of a lot cheaper than shelling out 100k on hardware.</p><p>If you&#8217;ve been itching to test out a local LLM, do yourself a favor and give DeepSeek R1 distills a whirl. No HPC cluster required, no eye-watering GPU budget&#8212;and still plenty of stuff under the hood.</p><p>Thanks for reading my first post here. We&#8217;re all just figuring this stuff out. Cheers!</p>]]></content:encoded></item></channel></rss>