<?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: Ishara Lakshan</title>
    <description>The latest articles on DEV Community by Ishara Lakshan (@isharalakshan).</description>
    <link>https://dev.to/isharalakshan</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%2F74717%2F6e50da39-1441-4c76-a413-7c0de93f973a.jpg</url>
      <title>DEV Community: Ishara Lakshan</title>
      <link>https://dev.to/isharalakshan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/isharalakshan"/>
    <language>en</language>
    <item>
      <title>NextCueAI: Local AI That Explains a Confusing Screen and Tells You What to Do Next</title>
      <dc:creator>Ishara Lakshan</dc:creator>
      <pubDate>Mon, 05 Oct 2026 04:24:04 +0000</pubDate>
      <link>https://dev.to/isharalakshan/nextcueai-local-ai-that-explains-a-confusing-screen-and-tells-you-what-to-do-next-3dak</link>
      <guid>https://dev.to/isharalakshan/nextcueai-local-ai-that-explains-a-confusing-screen-and-tells-you-what-to-do-next-3dak</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;
  
  
  NextCueAI: See the problem. Know what to do next.
&lt;/h2&gt;

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

&lt;p&gt;I built &lt;strong&gt;NextCueAI&lt;/strong&gt;, a local-first AI assistant for people who get stuck on confusing screens.&lt;/p&gt;

&lt;p&gt;You can drop, paste, or choose a screenshot from an app, website, settings page, error dialog, or form. NextCueAI looks at the screenshot and explains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what is on the screen&lt;/li&gt;
&lt;li&gt;what may be wrong&lt;/li&gt;
&lt;li&gt;what to do next&lt;/li&gt;
&lt;li&gt;clear step-by-step actions&lt;/li&gt;
&lt;li&gt;any uncertainty or caution that matters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It supports both &lt;strong&gt;English and Sinhala&lt;/strong&gt;, with &lt;strong&gt;Simple&lt;/strong&gt; and &lt;strong&gt;Detailed&lt;/strong&gt; explanation modes.&lt;/p&gt;

&lt;p&gt;The project is open source and available here:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ish4ra/NextCueAI" rel="noopener noreferrer"&gt;https://github.com/ish4ra/NextCueAI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows MSI:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/ish4ra/NextCueAI/releases/tag/v1.0.1" rel="noopener noreferrer"&gt;https://github.com/ish4ra/NextCueAI/releases/tag/v1.0.1&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Who I built it for
&lt;/h2&gt;

&lt;p&gt;I built NextCueAI for my friend &lt;strong&gt;Iruka Akash&lt;/strong&gt;, who is 26 and works at &lt;strong&gt;Galadari Hotel in Colombo&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Like many people who are comfortable using computers but do not want to spend time decoding every unfamiliar screen, he can occasionally run into confusing settings pages, error dialogs, installers, or forms where the difficult part is simply understanding what the screen is asking and what the safest next step is.&lt;/p&gt;

&lt;p&gt;That gave me the idea for NextCueAI: a tool that can look at a screenshot and explain the situation in plain language, almost like having a technically minded friend looking over your shoulder.&lt;/p&gt;

&lt;p&gt;I also wanted it to support Sinhala, because sometimes a clear explanation in your own language is much more useful than a technical answer in English.&lt;/p&gt;




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

&lt;p&gt;Here is the demo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/rEi1WpOVcB8" rel="noopener noreferrer"&gt;https://youtu.be/rEi1WpOVcB8&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the demo, I open NextCueAI, add a screenshot, run local screenshot analysis, and get an explanation with practical next steps.&lt;/p&gt;

&lt;p&gt;The current Windows release is packaged as an MSI, so Node.js is not required after installation.&lt;/p&gt;

&lt;p&gt;For v1.0.1, Ollama and the local Gemma model are still installed separately.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I wanted the AI to run locally
&lt;/h2&gt;

&lt;p&gt;A screenshot can contain much more private information than people realize.&lt;/p&gt;

&lt;p&gt;It may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;account names&lt;/li&gt;
&lt;li&gt;email addresses&lt;/li&gt;
&lt;li&gt;personal messages&lt;/li&gt;
&lt;li&gt;file names&lt;/li&gt;
&lt;li&gt;system information&lt;/li&gt;
&lt;li&gt;browser tabs&lt;/li&gt;
&lt;li&gt;settings&lt;/li&gt;
&lt;li&gt;error logs&lt;/li&gt;
&lt;li&gt;parts of forms or documents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That made local inference an important part of the design rather than just a technical preference.&lt;/p&gt;

&lt;p&gt;By default, NextCueAI sends the screenshot only to a local bridge running on &lt;code&gt;127.0.0.1&lt;/code&gt;, which passes it to a locally running Ollama model.&lt;/p&gt;

&lt;p&gt;There is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no hosted AI fallback&lt;/li&gt;
&lt;li&gt;no account system&lt;/li&gt;
&lt;li&gt;no analytics&lt;/li&gt;
&lt;li&gt;no database&lt;/li&gt;
&lt;li&gt;no screenshot history&lt;/li&gt;
&lt;li&gt;no cloud storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app uses an open-weight Gemma vision model through Ollama.&lt;/p&gt;

&lt;p&gt;Open AI is what makes the core privacy model of this project possible.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The frontend is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A lightweight local Express bridge handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;image validation&lt;/li&gt;
&lt;li&gt;image normalization&lt;/li&gt;
&lt;li&gt;MIME verification&lt;/li&gt;
&lt;li&gt;metadata removal&lt;/li&gt;
&lt;li&gt;local Ollama communication&lt;/li&gt;
&lt;li&gt;structured AI response validation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Windows desktop build uses Electron and is distributed as an MSI installer.&lt;/p&gt;

&lt;p&gt;The AI response is structured into fields such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what you are seeing&lt;/li&gt;
&lt;li&gt;what may be happening&lt;/li&gt;
&lt;li&gt;the next action&lt;/li&gt;
&lt;li&gt;step-by-step guidance&lt;/li&gt;
&lt;li&gt;caution&lt;/li&gt;
&lt;li&gt;confidence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I used structured output rather than displaying arbitrary raw model responses.&lt;/p&gt;

&lt;p&gt;The app also checks the selected Ollama model before analysis to make sure it supports image input.&lt;/p&gt;




&lt;h2&gt;
  
  
  Screenshot handling and safety
&lt;/h2&gt;

&lt;p&gt;NextCueAI currently accepts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PNG&lt;/li&gt;
&lt;li&gt;JPEG&lt;/li&gt;
&lt;li&gt;WebP&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It limits screenshots to 10 MB and rejects unsuitable inputs such as animated images.&lt;/p&gt;

&lt;p&gt;The local bridge checks the real image format, validates dimensions, removes metadata, handles image orientation, and normalizes screenshots before inference.&lt;/p&gt;

&lt;p&gt;Model output is rendered as text rather than executable HTML.&lt;/p&gt;

&lt;p&gt;Instructions visible inside screenshots are also treated as untrusted content by the analysis prompt.&lt;/p&gt;




&lt;h2&gt;
  
  
  English and Sinhala
&lt;/h2&gt;

&lt;p&gt;One of the features I cared about most was Sinhala support.&lt;/p&gt;

&lt;p&gt;It was not enough to simply add a language selector.&lt;/p&gt;

&lt;p&gt;During testing, I found cases where Sinhala requests could still return English, and some systems did not render Sinhala reliably.&lt;/p&gt;

&lt;p&gt;I tightened the language guidance and bundled a local Sinhala font so the UI does not depend on a remote font service.&lt;/p&gt;

&lt;p&gt;That also fits the local-first design.&lt;/p&gt;




&lt;h2&gt;
  
  
  Making it usable
&lt;/h2&gt;

&lt;p&gt;I did not want NextCueAI to look like another generic chatbot.&lt;/p&gt;

&lt;p&gt;The interface is centered around the screenshot itself.&lt;/p&gt;

&lt;p&gt;Users can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;drag and drop an image&lt;/li&gt;
&lt;li&gt;paste from the clipboard&lt;/li&gt;
&lt;li&gt;use a file picker&lt;/li&gt;
&lt;li&gt;preview the screenshot&lt;/li&gt;
&lt;li&gt;replace or remove it&lt;/li&gt;
&lt;li&gt;select English or Sinhala&lt;/li&gt;
&lt;li&gt;select Simple or Detailed guidance&lt;/li&gt;
&lt;li&gt;cancel an analysis&lt;/li&gt;
&lt;li&gt;retry&lt;/li&gt;
&lt;li&gt;copy the response&lt;/li&gt;
&lt;li&gt;start over&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application also handles cases such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ollama offline&lt;/li&gt;
&lt;li&gt;model missing&lt;/li&gt;
&lt;li&gt;unsupported model&lt;/li&gt;
&lt;li&gt;timeout&lt;/li&gt;
&lt;li&gt;malformed model response&lt;/li&gt;
&lt;li&gt;invalid image input&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Testing and release
&lt;/h2&gt;

&lt;p&gt;The repository includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unit tests&lt;/li&gt;
&lt;li&gt;API tests&lt;/li&gt;
&lt;li&gt;browser end-to-end tests&lt;/li&gt;
&lt;li&gt;responsive layout checks&lt;/li&gt;
&lt;li&gt;accessibility checks&lt;/li&gt;
&lt;li&gt;GitHub Actions CI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The current release is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NextCueAI v1.0.1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Windows users can install:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;NextCueAI-1.0.1-Windows-x64.msi&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Release:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ish4ra/NextCueAI/releases/tag/v1.0.1" rel="noopener noreferrer"&gt;https://github.com/ish4ra/NextCueAI/releases/tag/v1.0.1&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;The hardest part was not simply making a vision model describe a screenshot.&lt;/p&gt;

&lt;p&gt;The real challenge was turning that description into useful action.&lt;/p&gt;

&lt;p&gt;A response such as “this is a settings screen” does not help much when someone is stuck.&lt;/p&gt;

&lt;p&gt;The response needs to answer:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What am I seeing?&lt;br&gt;&lt;br&gt;
What is probably happening?&lt;br&gt;&lt;br&gt;
What should I do next?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I also learned that local AI changes the product design.&lt;/p&gt;

&lt;p&gt;You have to think about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;model availability&lt;/li&gt;
&lt;li&gt;first-load delay&lt;/li&gt;
&lt;li&gt;memory usage&lt;/li&gt;
&lt;li&gt;model capability detection&lt;/li&gt;
&lt;li&gt;timeouts&lt;/li&gt;
&lt;li&gt;malformed output&lt;/li&gt;
&lt;li&gt;offline behavior&lt;/li&gt;
&lt;li&gt;setup experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those constraints made the project feel much more like a real application than a thin AI API wrapper.&lt;/p&gt;




&lt;h2&gt;
  
  
  What my friend thought
&lt;/h2&gt;

&lt;p&gt;I built the project around a real problem I wanted to make easier for Iruka.&lt;/p&gt;

&lt;p&gt;The current release is complete and usable, and my next step is to have him test it with more of the kinds of confusing screens he actually encounters and use that feedback to improve the onboarding and explanations.&lt;/p&gt;




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

&lt;p&gt;The current v1.0.1 release works, but Windows users still need Ollama and the Gemma model installed separately.&lt;/p&gt;

&lt;p&gt;The next release is focused on making setup easier by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;detecting Ollama automatically&lt;/li&gt;
&lt;li&gt;guiding installation when it is missing&lt;/li&gt;
&lt;li&gt;detecting the local model&lt;/li&gt;
&lt;li&gt;downloading the model from inside the app&lt;/li&gt;
&lt;li&gt;showing setup progress&lt;/li&gt;
&lt;li&gt;recovering cleanly from interrupted setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I chose not to delay the working challenge release for that improvement.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why open innovation mattered here
&lt;/h2&gt;

&lt;p&gt;For NextCueAI, open AI is not just a challenge requirement.&lt;/p&gt;

&lt;p&gt;It is what makes the main privacy goal possible.&lt;/p&gt;

&lt;p&gt;The user can keep inference local, choose a compatible model, inspect the application code, and avoid sending screenshots to a remote AI provider.&lt;/p&gt;

&lt;p&gt;That makes the project more useful for exactly the kind of person I built it for: someone who needs help understanding a screen, but should not have to give up control of that screen in order to get help.&lt;/p&gt;

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