<?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: Suraj Dhawal</title>
    <description>The latest articles on DEV Community by Suraj Dhawal (@surajdhawal).</description>
    <link>https://dev.to/surajdhawal</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%2F4167733%2Fbf68dfdd-56ed-4191-9ed7-eb9fbe885653.png</url>
      <title>DEV Community: Suraj Dhawal</title>
      <link>https://dev.to/surajdhawal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/surajdhawal"/>
    <language>en</language>
    <item>
      <title>DeskDetox 🌿: An Open-Source CLI Agent That Forces You Away From Your Keyboard</title>
      <dc:creator>Suraj Dhawal</dc:creator>
      <pubDate>Sun, 11 Oct 2026 09:19:53 +0000</pubDate>
      <link>https://dev.to/surajdhawal/deskdetox-an-open-source-cli-agent-that-forces-you-away-from-your-keyboard-1oo0</link>
      <guid>https://dev.to/surajdhawal/deskdetox-an-open-source-cli-agent-that-forces-you-away-from-your-keyboard-1oo0</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;When I saw the &lt;strong&gt;"Touch Grass"&lt;/strong&gt; theme, it hit me: almost every "outdoor" or "break" app on the market has a fatal flaw—you are still staring at a screen. Hiking apps, run trackers, and meditation guides keep our heads bowed and our thumbs scrolling.&lt;/p&gt;

&lt;p&gt;I wanted to build an agent that actively fights screen time. Meet &lt;strong&gt;DeskDetox&lt;/strong&gt;—a local CLI tool built with the new open-source &lt;code&gt;google.antigravity&lt;/code&gt; Python SDK. You tell it how much time you have, and it generates a hyper-local, weather-aware outdoor micro-adventure so you can leave your phone on your desk and actually experience the physical world.&lt;/p&gt;

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

&lt;p&gt;Here is DeskDetox in action! I typed that I had 11 minutes for a quick break between PR reviews. The agent dynamically calculated my walking radius, checked the sky, and generated this mission:&lt;/p&gt;

&lt;p&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%2Fsow5sz1ryhfs59xn2td1.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%2Fsow5sz1ryhfs59xn2td1.png" alt="DeskDetox CLI Demo" width="800" height="396"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(I actually followed this mission. Leaving my phone on my desk and walking out the door empty-handed felt strange at first, but incredibly liberating!)&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;The complete source code is available on GitHub. Because it is fully packaged, you can install it globally on your machine using &lt;code&gt;pip&lt;/code&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Dev-Suraj-Dhawal/DeskDetox.git" rel="noopener noreferrer"&gt;Dev-Suraj-Dhawal/DeskDetox&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built the core harness using Python, leaning entirely into open-source agent frameworks and open data.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The Framework:&lt;/strong&gt; I utilized the &lt;strong&gt;Google Antigravity SDK&lt;/strong&gt;. Its &lt;code&gt;LocalAgentConfig&lt;/code&gt; handles the agentic loop, tool wiring, and async streaming effortlessly from the terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Open Data Sensory Tools:&lt;/strong&gt; The agent needs to sense my physical environment without a heavy mobile frontend. I gave it three custom Python tools:

&lt;ul&gt;
&lt;li&gt;A local IP-geocoder to find my coordinates without me typing them.&lt;/li&gt;
&lt;li&gt;The open-source &lt;strong&gt;Open-Meteo API&lt;/strong&gt; for real-time weather and daylight status.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;OpenStreetMap (OSM) Overpass API&lt;/strong&gt; to locate the nearest parks, trails, or green spaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Brain:&lt;/strong&gt; Powered by Gemini 1.5 Flash via the Google AI Studio, the agent contextualizes the weather, dynamically calculates how far I can physically walk based on my time limit, and spits out a 2-sentence mission.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;If this were a closed, proprietary mobile app, it would be a privacy nightmare. It would require background location tracking, push notifications, and harvesting my daily routines on a central server just to tell me to go outside.&lt;/p&gt;

&lt;p&gt;Because DeskDetox uses an &lt;strong&gt;open-source agent harness&lt;/strong&gt; running locally on my terminal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero Tracking:&lt;/strong&gt; My location data never leaves my laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Data Ecosystem:&lt;/strong&gt; Relying on OpenStreetMap and Open-Meteo means the app scales globally for free. We don't have to rely on walled-garden corporate map APIs that restrict access or charge fees.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complete Agent Control:&lt;/strong&gt; By using an open-source framework, I could explicitly write a "Dynamic Walking Radius" constraint into the prompt layer. I programmed the agent harness to know: &lt;em&gt;"The user has exactly X minutes. They can only walk X/2 minutes away. Find OSM nodes strictly within this physical constraint."&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is an anti-app—it runs locally, gives you a mission, and then you close your laptop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Overall Winner&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>python</category>
    </item>
  </channel>
</rss>
