<?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: Aarushi Tandon</title>
    <description>The latest articles on DEV Community by Aarushi Tandon (@aarushitandon).</description>
    <link>https://dev.to/aarushitandon</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%2F4024520%2F7b3892b3-0fd5-47fb-bffa-f19ff2a1318b.jpg</url>
      <title>DEV Community: Aarushi Tandon</title>
      <link>https://dev.to/aarushitandon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aarushitandon"/>
    <language>en</language>
    <item>
      <title>TinyMe: A little version of me that lives on my friends' and family's laptops.</title>
      <dc:creator>Aarushi Tandon</dc:creator>
      <pubDate>Sun, 04 Oct 2026 14:07:46 +0000</pubDate>
      <link>https://dev.to/aarushitandon/tinyme-a-little-version-of-me-that-lives-on-my-friends-and-familys-laptops-597e</link>
      <guid>https://dev.to/aarushitandon/tinyme-a-little-version-of-me-that-lives-on-my-friends-and-familys-laptops-597e</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I have a lot of smart friends. They're researchers, designers, writers and artists, and they're very good at what they do.&lt;/p&gt;

&lt;p&gt;Every so often one of them messages me: "Hey, how do I do this on my laptop?" My mom does the same thing. How do I find this file? Where did my download go? Which button do I press? Why is this not working?&lt;/p&gt;

&lt;p&gt;They aren't unintelligent. They're just not computer people. They know what they want to accomplish, but unfamiliar folders, settings, buttons and pop-ups are frustrating, and I'm usually the computer person they call.&lt;/p&gt;

&lt;p&gt;So: what if a small version of me could live on their laptop?&lt;/p&gt;

&lt;p&gt;That's &lt;strong&gt;Tiny Me&lt;/strong&gt;. It's a local desktop helper for non-technical users. You press a hotkey and say what you're trying to do in plain words, like "Find my train ticket for tomorrow" or "Show me how to search for trains." Tiny Me looks at the screen, works out the next control, and draws a circle around exactly where to click. You click it. It checks that the step worked, then circles the next one.&lt;/p&gt;

&lt;p&gt;It's like having a tech-savvy friend sitting next to you saying "Yep. Click this." Except that friend lives on your laptop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is designed to teach, not to take over.&lt;/strong&gt; The goal is "let AI make your computer understandable," not "let AI use your computer." The user stays in control.&lt;/p&gt;

&lt;p&gt;It also knows when to stop. When the screen reaches a password, one-time code, card number or payment, Tiny Me says "This part is yours. I'll wait." It doesn't type, doesn't click, and doesn't try to get around the boundary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it is for.&lt;/strong&gt; My mom, and friends who are brilliant at their jobs but get stuck on their laptops. [[TODO: Add the concrete moment you watched someone get stuck, in 3 to 5 sentences, using only what actually happened. Only if you have it.]]&lt;/p&gt;

&lt;p&gt;Everything runs on the user's Windows machine. Reading the screen, finding controls and the language model are all local. No screen content leaves the laptop.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/aarushitandon0/tinyme/blob/main/SS/07_demo_walkthrough.mp4" rel="noopener noreferrer"&gt;Watch the full demo walkthrough (MP4)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo runs against a local booking website included in the repo (&lt;code&gt;demo_site/&lt;/code&gt;), and shows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Press &lt;code&gt;Ctrl+Alt+H&lt;/code&gt; and type a goal.&lt;/li&gt;
&lt;li&gt;Tiny Me circles the next control and explains the step in one line.&lt;/li&gt;
&lt;li&gt;The user clicks it.&lt;/li&gt;
&lt;li&gt;Tiny Me checks whether the step worked.&lt;/li&gt;
&lt;li&gt;The circle moves to the next control.&lt;/li&gt;
&lt;li&gt;At a sign-in page, Tiny Me stops and hands control back.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+Alt+P&lt;/code&gt; stops it at any time.&lt;/li&gt;
&lt;/ol&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%2F3nk10r600l0d29fvb3y9.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%2F3nk10r600l0d29fvb3y9.png" alt="TinyMe home screen" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Press the hotkey, then describe what you're trying to do in plain language.&lt;/em&gt;&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%2Fklwtlvvxc7g73mjmt56p.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%2Fklwtlvvxc7g73mjmt56p.png" alt="TinyMe guiding the user step by step" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tiny Me circles the control and waits for the user to click it.&lt;/em&gt;&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%2F9wqjwnrzt2ypg3j2otc2.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%2F9wqjwnrzt2ypg3j2otc2.png" alt="TinyMe handing control back at a sensitive step" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;At a sensitive step like sign-in, Tiny Me stops instead of interacting.&lt;/em&gt;&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%2Fi1cnbntmi726bbdahm3j.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%2Fi1cnbntmi726bbdahm3j.png" alt="TinyMe example goals" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example goals.&lt;/em&gt;&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%2F0lem5o415f33jh8egadd.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%2F0lem5o415f33jh8egadd.png" alt="TinyMe helping find a file" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Finding a downloaded file, one circled click at a time.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;All screenshots are in the repo's &lt;a href="https://github.com/aarushitandon0/tinyme/tree/main/SS" rel="noopener noreferrer"&gt;SS folder&lt;/a&gt;.&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/aarushitandon0" rel="noopener noreferrer"&gt;
        aarushitandon0
      &lt;/a&gt; / &lt;a href="https://github.com/aarushitandon0/tinyme" rel="noopener noreferrer"&gt;
        tinyme
      &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;Tiny Me&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A Windows desktop assistant that watches one screen, decides what to click next, and draws a circle around it.&lt;/p&gt;
&lt;p&gt;Tiny Me is built for a single non-technical user. She presses a hotkey, types what she wants in plain words, and the application either &lt;strong&gt;shows her how&lt;/strong&gt; by circling the exact control to click and waiting until she clicks it, or &lt;strong&gt;does it for her&lt;/strong&gt; while she watches. At any screen involving a password, a one-time code, a card number or a payment, it stops and hands control back.&lt;/p&gt;
&lt;p&gt;Everything runs on the local machine. Optical character recognition, UI inspection and the language model are all local processes. No screen content is transmitted. The application functions with networking disabled.&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#1-design-constraints" rel="noopener noreferrer"&gt;Design constraints&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#2-system-architecture" rel="noopener noreferrer"&gt;System architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#3-the-per-step-pipeline" rel="noopener noreferrer"&gt;The per-step pipeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#4-module-reference" rel="noopener noreferrer"&gt;Module reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#5-the-element-list-the-models-entire-world" rel="noopener noreferrer"&gt;The element list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#6-the-model-contract" rel="noopener noreferrer"&gt;The model contract&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#7-deterministic-success-checking" rel="noopener noreferrer"&gt;Deterministic success checking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#8-the-guard" rel="noopener noreferrer"&gt;The guard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#9-coordinate-systems-and-dpi" rel="noopener noreferrer"&gt;Coordinate systems and DPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/aarushitandon0/tinyme#10-threading-model" rel="noopener noreferrer"&gt;Threading model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/aarushitandon0/tinyme#11-the-overlay" rel="noopener noreferrer"&gt;The&lt;/a&gt;…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/aarushitandon0/tinyme" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/aarushitandon0/tinyme" rel="noopener noreferrer"&gt;github.com/aarushitandon0/tinyme&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Run
&lt;/h3&gt;

&lt;p&gt;Requires Windows 10 (version 2004 or later) or Windows 11, Python 3.11, and &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/aarushitandon0/tinyme
&lt;span class="nb"&gt;cd &lt;/span&gt;tinyme
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv .venv
.venv&lt;span class="se"&gt;\S&lt;/span&gt;cripts&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;".[dev]"&lt;/span&gt;
playwright &lt;span class="nb"&gt;install &lt;/span&gt;chromium
ollama pull gemma4:e2b
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To run the demo, open two terminals in the repository folder.&lt;/p&gt;

&lt;p&gt;Terminal 1:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; http.server 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Terminal 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;-m&lt;/span&gt; app.main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;TinyMe starts with no visible window.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+Alt+H&lt;/code&gt; opens the prompt. Type a goal and choose "Show me how" or "Do it for me."&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+Alt+P&lt;/code&gt; stops TinyMe at any time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The demo targets &lt;code&gt;http://localhost:8000/demo_site/index.html&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Optional settings go in a &lt;code&gt;.env&lt;/code&gt; file at the repo root: &lt;code&gt;TINYME_MODEL&lt;/code&gt; (Ollama model tag), &lt;code&gt;TINYME_LANGUAGE&lt;/code&gt;, and &lt;code&gt;TINYME_TELEMETRY&lt;/code&gt; (off unless set to &lt;code&gt;1&lt;/code&gt;).&lt;/p&gt;

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

&lt;p&gt;The core idea: &lt;strong&gt;the language model chooses a control, never a coordinate.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tiny Me builds a numbered list of the on-screen controls, and asks the model to pick one number from it. The model answers &lt;code&gt;17&lt;/code&gt;, not &lt;code&gt;click(834, 492)&lt;/code&gt;. The app can then check that &lt;code&gt;17&lt;/code&gt; is a real, interactable control. A model that generates pixel coordinates can produce plausible but wrong ones. A number from a list the app built can be validated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The model proposes. The app decides.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Success is checked in code.&lt;/strong&gt; After each step, a watcher polls the screen about once per second and checks window titles or classes, visible text, pixel changes, or browser structure. The model can suggest which check to run, but Python runs it. I deliberately don't ask the model "did that work?" A model judging its own action can easily talk itself into success.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The safety guard runs before the model.&lt;/strong&gt; Before every model call and every automated action, the guard checks for sensitive screens. If one is present, nothing is sent to the model and nothing is clicked or typed. In the browser, the guard uses page structure, so a password field counts as a password field whatever its label says. Screenshots stay in memory and are never written to disk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Everything runs locally:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 (&lt;code&gt;gemma4:e2b&lt;/code&gt;)&lt;/strong&gt; via &lt;strong&gt;Ollama&lt;/strong&gt;, for choosing the control&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RapidOCR&lt;/strong&gt; on &lt;strong&gt;ONNX Runtime&lt;/strong&gt;, for screen text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows UI Automation&lt;/strong&gt;, for discovering controls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt; for orchestration, guard, validation and execution&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Playwright&lt;/strong&gt; for the browser demo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen3.5-4B fine-tuned on Tinker&lt;/strong&gt; as a swappable alternative picker (see below)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Tinker experiment
&lt;/h3&gt;

&lt;p&gt;I fine-tuned &lt;code&gt;Qwen/Qwen3.5-4B&lt;/code&gt; with LoRA (rank 16, 3 epochs, 80 training examples, about $0.17) on Tinker. The held-out test was the whole &lt;code&gt;demo_site&lt;/code&gt; app, which the model never saw in training, with 22 labelled examples.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;System&lt;/th&gt;
&lt;th&gt;Correct control&lt;/th&gt;
&lt;th&gt;Valid answer format&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Untuned Qwen3.5-4B&lt;/td&gt;
&lt;td&gt;0/22 (0%)&lt;/td&gt;
&lt;td&gt;0/22 (0%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fine-tuned Qwen3.5-4B&lt;/td&gt;
&lt;td&gt;18/22 (81%)&lt;/td&gt;
&lt;td&gt;22/22 (100%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The untuned model's 0/22 is mostly a format failure: its replies didn't parse. Fine-tuning fixed the format but not the choice. In 19 of 22 examples the tuned model still picked the wrong element. For example, asked to "pay for my ticket," it picked a heading when the right answer was "not on this screen."&lt;/p&gt;

&lt;p&gt;That's a modest result, and it's a useful failure. It says the next problem is teaching the model when to act, which control to pick, and when no safe action exists, not only following the output format.&lt;/p&gt;

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

&lt;p&gt;For Tiny Me, local and open models aren't a preference; they're part of the product. If I'm asking my friends and my mom to let software look at their screen, I don't want that to depend on trusting a closed hosted API.&lt;/p&gt;

&lt;p&gt;With open weights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the model runs on the laptop, and screen content stays there,&lt;/li&gt;
&lt;li&gt;sensitive controls are blocked before any model call,&lt;/li&gt;
&lt;li&gt;the code is inspectable,&lt;/li&gt;
&lt;li&gt;and I could swap the model, fine-tune it, and measure where it fails.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A closed API would have hidden the 0/22 and the 3/22 behind a single "it works" demo. Open weights let me train a model, test it on an app it hadn't seen, and report that it mostly still fails.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;br&gt;
Gemma 4 (&lt;code&gt;gemma4:e2b&lt;/code&gt;) is the default model, run fully locally through Ollama. It reads the numbered list of on-screen controls and picks one. Nothing in the runtime path is a hosted API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Tinker&lt;/strong&gt;&lt;br&gt;
I fine-tuned Qwen3.5-4B on Tinker and tested it on a whole held-out app. Valid answer format went from 0/22 to 22/22, and correct control selection from 0/22 to 18/22. The gain is small, and the write-up documents where it still fails.&lt;/p&gt;

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

&lt;p&gt;The next step is to put Tiny Me in front of the people I built it for: friends, family, and my mom. I want to find out where they hesitate, which instructions make sense right away, what confuses them, whether they remember the steps next time, where Tiny Me should step back, and most importantly, &lt;strong&gt;after using Tiny Me, do they need it less?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the metric I care about. I don't want to build something that makes people feel they can't use their own computer without it. I want the opposite: a small version of your tech-savvy friend that says "Here. Click this." and, eventually, you don't need to ask.&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
