<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: abdullah amin</title>
    <description>The latest articles on DEV Community by abdullah amin (@abdullah_amin_0019da25f92).</description>
    <link>https://dev.to/abdullah_amin_0019da25f92</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4155365%2Fdb251ae9-4218-4459-8095-a42c3b757934.png</url>
      <title>DEV Community: abdullah amin</title>
      <link>https://dev.to/abdullah_amin_0019da25f92</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdullah_amin_0019da25f92"/>
    <language>en</language>
    <item>
      <title>SlothSurf: The Zero-Effort Autonomous Browser Agent for Lazy Humans 🦥</title>
      <dc:creator>abdullah amin</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:48:23 +0000</pubDate>
      <link>https://dev.to/abdullah_amin_0019da25f92/slothsurf-the-zero-effort-autonomous-browser-agent-for-lazy-humans-45oi</link>
      <guid>https://dev.to/abdullah_amin_0019da25f92/slothsurf-the-zero-effort-autonomous-browser-agent-for-lazy-humans-45oi</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;October 20th is International Sloth Day, and sloths have life figured out: they move at their own pace, conserve energy, and never burn calories unless absolutely necessary.&lt;/p&gt;

&lt;p&gt;Meanwhile, humans spend hours every day on tedious digital chores:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digging through 50 Hacker News or Reddit comments to find the actual point&lt;/li&gt;
&lt;li&gt;Checking 3 weather sites to decide whether to get out of bed&lt;/li&gt;
&lt;li&gt;Comparing prices across tabs while popups block the screen&lt;/li&gt;
&lt;li&gt;Filling out multi-page web forms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SlothSurf&lt;/strong&gt; is an autonomous browser agent that takes a high-level instruction ("Summarize the top 3 tech discussions today", "Find me a budget coffee maker under $25", "Check the weather and tell me if I have permission to stay in bed") and executes it inside a real Chromium browser: navigating, scrolling, clicking, extracting the key insight, and handing you the answer while you stay on the couch.&lt;/p&gt;

&lt;p&gt;It features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Sloth CLI&lt;/strong&gt; with ASCII art, real-time step streaming, and lazy presets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit web dashboard&lt;/strong&gt; with a one-click mission launcher plus model and slow-motion sliders&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sloth-tuned prompt&lt;/strong&gt; that conserves actions, takes the most direct clicks, and delivers the bare minimum needed to keep you informed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/algo-abdullah" rel="noopener noreferrer"&gt;
        algo-abdullah
      &lt;/a&gt; / &lt;a href="https://github.com/algo-abdullah/slothsurf" rel="noopener noreferrer"&gt;
        slothsurf
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🦥 SlothSurf — The Zero-Effort Autonomous Web Agent&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Slow and steady wins the race. Doing nothing wins the prize."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Built for the &lt;strong&gt;Slow and Steady (International Sloth Day)&lt;/strong&gt; AI Challenge.&lt;br&gt;
Powered by the open-source &lt;strong&gt;&lt;code&gt;browser-use&lt;/code&gt;&lt;/strong&gt; agent harness and &lt;strong&gt;xAI Grok&lt;/strong&gt; (&lt;code&gt;grok-2-vision-1212&lt;/code&gt;).&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🌟 Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;SlothSurf&lt;/strong&gt; is an autonomous browser agent built for when you are simply too lazy to click, scroll, and read through endless websites yourself.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hands-Free Web Browsing:&lt;/strong&gt; Watch Chromium navigate, click buttons, and read pages for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open-Source Core:&lt;/strong&gt; Powered by the open-source &lt;a href="https://github.com/browser-use/browser-use" rel="noopener noreferrer"&gt;&lt;code&gt;browser-use&lt;/code&gt;&lt;/a&gt; library with zero vendor lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Grok 2 Vision Integration:&lt;/strong&gt; Lightning-fast visual grounding and snarky, concise summaries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual Interface:&lt;/strong&gt; Run it in your terminal with rich ASCII art or launch the interactive Streamlit web dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Quickstart&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Prerequisites &amp;amp; Virtual Environment&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Ensure you have Python 3.11+ installed.&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Create and activate virtual environment&lt;/span&gt;
python -m venv .venv
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; On Windows (PowerShell):&lt;/span&gt;
.&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/algo-abdullah/slothsurf" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Run it yourself in 3 steps:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Clone &amp;amp; install&lt;/span&gt;
git clone https://github.com/algo-abdullah/slothsurf.git
&lt;span class="nb"&gt;cd &lt;/span&gt;slothsurf
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
playwright &lt;span class="nb"&gt;install &lt;/span&gt;chromium

&lt;span class="c"&gt;# 2. Add your Grok API key&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"XAI_API_KEY=your_xai_key_here"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; .env

&lt;span class="c"&gt;# 3. Launch&lt;/span&gt;
python main.py          &lt;span class="c"&gt;# Terminal CLI&lt;/span&gt;
streamlit run app.py    &lt;span class="c"&gt;# Web dashboard&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The architecture is clean and decoupled:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[ User (CLI / Streamlit UI) ]
            │
            ▼
   [ Sloth Agent Engine ]
   ├── Agent harness: browser-use (open source)
   ├── Browser controller: Playwright (Chromium)
   └── Vision reasoning: xAI Grok API (grok-2-vision-1212)
            │
            ▼
 [ Live Chromium Browser Navigation ]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Harness:&lt;/strong&gt; &lt;a href="https://github.com/browser-use/browser-use" rel="noopener noreferrer"&gt;browser-use&lt;/a&gt; handles screenshot capture, coordinate mapping, and browser action sequencing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brain:&lt;/strong&gt; &lt;code&gt;grok-2-vision-1212&lt;/code&gt; via the xAI API for fast vision grounding and concise answers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interface:&lt;/strong&gt; a Rich CLI for terminal lovers and Streamlit for visual desktop users.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;No lock-in, no license fees.&lt;/strong&gt; Closed RPA and cloud browser-automation platforms (UiPath, agent SaaS products) charge monthly subscriptions, restrict you to their proprietary cloud browsers, and gate API access. Building on browser-use and open Playwright standards means the whole agent layer is free software that I own, modify, and run on my own machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model agnostic.&lt;/strong&gt; Because the harness uses the standard OpenAI/LangChain client interface, I connected it to Grok for fast visual reasoning, but I can swap to local open-weight models (Qwen2-VL, Llama-3.2-Vision) with a single environment variable change whenever I need offline privacy. A closed automation bot would have locked me into one model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inspectable and private.&lt;/strong&gt; Web agents touch cookies, tabs, and personal accounts. With an open harness, every DOM extraction, screenshot, and coordinate click is visible in Python code, and nothing phones home telemetry to a corporate vendor.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;The future of AI shouldn't just be about working faster; it should be about working less. SlothSurf turns multi-tab, multi-click chores into one sentence typed from the couch.&lt;/p&gt;

&lt;p&gt;Stay slow, stay steady, and happy International Sloth Day! 🦥&lt;/p&gt;




</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
    <item>
      <title>ListingLocal</title>
      <dc:creator>abdullah amin</dc:creator>
      <pubDate>Sun, 18 Oct 2026 15:36:20 +0000</pubDate>
      <link>https://dev.to/abdullah_amin_0019da25f92/listinglocal-n31</link>
      <guid>https://dev.to/abdullah_amin_0019da25f92/listinglocal-n31</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;ListingLocal&lt;/strong&gt; is an offline listing writer for small Daraz sellers. You type a product name, add a few facts (material, size, colors, price), optionally upload a photo, and get back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a keyword-rich title (max 90 characters)&lt;/li&gt;
&lt;li&gt;5 highlight bullets&lt;/li&gt;
&lt;li&gt;an English description&lt;/li&gt;
&lt;li&gt;a Roman Urdu description&lt;/li&gt;
&lt;li&gt;8 search tags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Who would pay for it?&lt;/strong&gt; Small online sellers in Pakistan who run their own store and write every listing by hand. I run a Daraz store myself, so this is a task I know well: writing listings is slow, repetitive and has to be done for every SKU. Roman Urdu matters because many buyers search and read that way, and generic tools handle it poorly.&lt;/p&gt;

&lt;p&gt;The model is told to use only the facts the seller gives it or what is clearly visible in the photo, so it doesn't invent specs or warranties.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;It runs locally at &lt;code&gt;http://127.0.0.1:5000&lt;/code&gt;. Enter a product, click &lt;strong&gt;Write listing&lt;/strong&gt;, and the result appears in a few seconds to a minute depending on your hardware.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/algo-abdullah" rel="noopener noreferrer"&gt;
        algo-abdullah
      &lt;/a&gt; / &lt;a href="https://github.com/algo-abdullah/listinglocal" rel="noopener noreferrer"&gt;
        listinglocal
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;ListingLocal&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An offline product-listing writer for Daraz (and similar marketplace) sellers. Enter a product name, add a few facts, optionally upload a photo, and get a ready-to-paste listing in English and Roman Urdu.&lt;/p&gt;
&lt;p&gt;It runs on an open-weight model through &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;, so your product data, supplier prices and photos never leave your laptop.&lt;/p&gt;
&lt;p&gt;Built for the open-source AI "Side Hustle" challenge.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What you get&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;For each product:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Title&lt;/strong&gt;: up to 90 characters, keyword-rich, no ALL CAPS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5 highlights&lt;/strong&gt;: short bullet points&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description&lt;/strong&gt;: two short paragraphs in English&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Roman Urdu description&lt;/strong&gt;: the same content in natural Roman Urdu&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8 search tags&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The model is instructed to use only the facts you provide or what is clearly visible in the photo. It should not invent specs, warranties or materials. Always review the output before publishing.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Requirements&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.9+&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ollama.com/download" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt; installed and running&lt;/li&gt;
&lt;li&gt;A vision-capable model (default: &lt;code&gt;gemma3:4b&lt;/code&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/algo-abdullah/listinglocal" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;It is a single-file Flask app (&lt;code&gt;app.py&lt;/code&gt;) plus a README.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model:&lt;/strong&gt; an open-weight vision model served by &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;. The default is &lt;code&gt;gemma3:4b&lt;/code&gt;, and you can change it with &lt;code&gt;MODEL=qwen2.5vl:7b python app.py&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Flask with one &lt;code&gt;POST /generate&lt;/code&gt; endpoint. It takes the product name, facts and optional photo, base64-encodes the photo, and sends everything to Ollama's &lt;code&gt;/api/chat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured output:&lt;/strong&gt; Ollama's &lt;code&gt;format: "json"&lt;/code&gt; option forces valid JSON. Any missing keys get empty defaults, so the UI never breaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompting:&lt;/strong&gt; a system prompt sets the Daraz style, the "only use given facts" rule and the exact output schema.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; one inline HTML page with a form and a results box. No build step.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Setup is three commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull gemma3:4b
pip &lt;span class="nb"&gt;install &lt;/span&gt;flask requests
python app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; there is no per-listing fee. A seller with hundreds of SKUs can regenerate and tweak as often as they like. With a paid API, every rewrite costs money, which hurts most for low-margin sellers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy:&lt;/strong&gt; supplier prices, unreleased products and product photos stay on the seller's laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in:&lt;/strong&gt; changing models is one environment variable. If a better model comes out, or a seller wants better Roman Urdu, they swap it in without changing code or pricing plans.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fine-tuning:&lt;/strong&gt; because the weights are open, a seller's best-performing listings could be used to adapt the model to their niche, which a closed API doesn't offer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline:&lt;/strong&gt; it works without internet, which helps during outages and load-shedding.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;CSV batch mode (one row per product, one listing each), which is the feature I would charge for.&lt;/li&gt;
&lt;li&gt;Few-shot examples from a seller's own top listings.&lt;/li&gt;
&lt;li&gt;A validation pass for title length and banned words.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SmogCheck - offline</title>
      <dc:creator>abdullah amin</dc:creator>
      <pubDate>Sun, 11 Oct 2026 07:45:04 +0000</pubDate>
      <link>https://dev.to/abdullah_amin_0019da25f92/smogcheck-offline-68a</link>
      <guid>https://dev.to/abdullah_amin_0019da25f92/smogcheck-offline-68a</guid>
      <description>&lt;p&gt;Liquid syntax error: Tag '{%&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9zfw6agatxkq8uzkkxvb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9zfw6agatxkq8uzkkxvb.png" alt=" " width="800" height="820"&gt;&lt;/a&gt; %}' was not properly terminated with regexp: /\%\}/&lt;/p&gt;
</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
