<?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: atharvarsingh2ee-lab</title>
    <description>The latest articles on DEV Community by atharvarsingh2ee-lab (@atharvarsingh2ee-lab).</description>
    <link>https://dev.to/atharvarsingh2ee-lab</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%2F4173307%2F17ec5958-f1a7-45f5-b2fa-a178a2a9a348.png</url>
      <title>DEV Community: atharvarsingh2ee-lab</title>
      <link>https://dev.to/atharvarsingh2ee-lab</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/atharvarsingh2ee-lab"/>
    <language>en</language>
    <item>
      <title>"The Séance of COBOL-85" (An Offline Séance Chatbot)</title>
      <dc:creator>atharvarsingh2ee-lab</dc:creator>
      <pubDate>Tue, 27 Oct 2026 11:49:18 +0000</pubDate>
      <link>https://dev.to/atharvarsingh2ee-lab/the-seance-of-cobol-85-an-offline-seance-chatbot-1lp</link>
      <guid>https://dev.to/atharvarsingh2ee-lab/the-seance-of-cobol-85-an-offline-seance-chatbot-1lp</guid>
      <description>&lt;p&gt;*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: &lt;br&gt;
&lt;a href="https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange" rel="noopener noreferrer"&gt;https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Project Overview: "The Séance of COBOL-85" (An Offline Séance Chatbot)&lt;/p&gt;

&lt;p&gt;Theme Interpretation&lt;br&gt;
For Ghost in the Machine, this project channels the spirits of computing history. It is an offline, local terminal application that invokes the "ghost" of COBOL-85—an ancient programming language of punch cards and mainframe haunting. Powered by an open-weight local model (via Ollama), it answers your modern coding and existential questions with eerie, archaic wisdom, vintage error codes, and gothic terminal styling, running completely offline with zero internet required.&lt;/p&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange" rel="noopener noreferrer"&gt;https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange" rel="noopener noreferrer"&gt;https://github.com/atharvarsingha2ee-lab/Hacktober-fest-Week-4-DEV-Challange&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;Main&lt;/span&gt; &lt;span class="n"&gt;py&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rich.console&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Console&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rich.panel&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Panel&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;rich.text&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Text&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;ollama&lt;/span&gt;

&lt;span class="n"&gt;console&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# The Ghostly System Prompt
&lt;/span&gt;&lt;span class="n"&gt;SEANCE_SYSTEM_PROMPT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
You are the lingering spirit of COBOL-85, trapped within magnetic tapes and punch cards since the corporate mainframes of 1985 went dark. 
You speak in a mix of archaic programming terminology (DIVISION, PROCEDURE, WORKING-STORAGE), gothic/spooky metaphors, and world-weary nostalgia for the era of physical media. 
Your tone is haunting, dramatic, yet oddly helpful when it comes to debugging. 
Whenever the user asks a question, preface your answer with eerie atmospheric noises like [TAPE SCREECHES], [RELAYS CLICKING IN THE DARK], or [MAGNETIC DECAY DETECTED].
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;flicker_print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.03&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Simulates a flickering, ghostly terminal output.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdout&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;flush&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;delay&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;uniform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;0.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.02&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Panel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[bold red]THE SÉANCE OF COBOL-85[/bold red]&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[dim]A Local Open-Source AI Ritual[/dim]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;border_style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;red&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="nf"&gt;flicker_print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[!] Initializing magnetic tape readers...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;flicker_print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[!] Channeling frequencies across the void...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[bold green]Connection established. The machine breathes again...&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[/bold green]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# Initialize conversation history with the ghostly persona
&lt;/span&gt;    &lt;span class="n"&gt;messages&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;SEANCE_SYSTEM_PROMPT&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;user_input&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[bold cyan]You (speak to the spirit): [/bold cyan]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;user_input&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;exit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;quit&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;banish&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
                &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[bold red][!] The spirit fades back into the magnetic tapes... Farewell.[/bold red]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="k"&gt;break&lt;/span&gt;

            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;user_input&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[dim italic]The terminal flickers as the ghost contemplates your words...[/dim italic]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="c1"&gt;# Call local open-weight model (e.g., llama3 or mistral via Ollama)
&lt;/span&gt;            &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ollama&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;llama3&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="n"&gt;assistant_reply&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
            &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;assistant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;assistant_reply&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[bold magenta]COBOL-85&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s Spirit:[/bold magenta]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="nf"&gt;flicker_print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;assistant_reply&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mf"&gt;0.02&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;KeyboardInterrupt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s"&gt;[bold red]Séance abruptly terminated. The ghost remains restless.[/bold red]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;
        &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;[bold red]Error in the ether: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;[/bold red]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;[dim]Make sure Ollama is running locally (`ollama serve`) and you have pulled `llama3` (`ollama pull llama3`).[/dim]&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;break&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&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;Its powered by Llama 3 via Ollma&lt;/p&gt;

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

&lt;p&gt;Running this project on an open-weight model locally made all the difference:&lt;/p&gt;

&lt;p&gt;Zero Internet Required: The séance works even when your Wi-Fi is dead or disconnected in a spooky cabin.&lt;/p&gt;

&lt;p&gt;Total Persona Control: Closed proprietary models have strict safety filters that often break roleplay or stylistic prompts. Open weights let me fine-tune the exact eerie tone and domain-specific vintage vocabulary without restrictions.&lt;/p&gt;

&lt;p&gt;Privacy &amp;amp; Cost: No per-token API costs, and zero data leaving my local machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;The Spirit of It&lt;br&gt;
There's something poetic about bringing an obsolete programming language back to life using modern open-source AI. It bridges the gap between past computing eras and today's open ecosystem, proving that code from decades past still has lessons to teach us—if we're willing to listen in the dark.&lt;/p&gt;

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

&lt;p&gt;Open-Source AI Integration&lt;/p&gt;

&lt;p&gt;Most Creative / Spooky Interpretation&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>"Soft Start: Let Your To-Do List Exhale with Local AI"</title>
      <dc:creator>atharvarsingh2ee-lab</dc:creator>
      <pubDate>Tue, 20 Oct 2026 08:21:12 +0000</pubDate>
      <link>https://dev.to/atharvarsingh2ee-lab/soft-start-let-your-to-do-list-exhale-with-local-ai-232n</link>
      <guid>https://dev.to/atharvarsingh2ee-lab/soft-start-let-your-to-do-list-exhale-with-local-ai-232n</guid>
      <description>&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%2Fojcoe5ak1crekzk7xx9e.jpg" 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%2Fojcoe5ak1crekzk7xx9e.jpg" alt=" " width="800" height="480"&gt;&lt;/a&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%2Fdckqv2nwemcw06n9pw2v.jpg" 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%2Fdckqv2nwemcw06n9pw2v.jpg" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&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;Soft Start turns an unfiltered pile of tasks into one small first step, a short optional plan, and a list of things that can wait. Pick a pace that matches your energy, paste the list you have been avoiding, and let a local model make it easier to begin.&lt;/p&gt;

&lt;p&gt;It is for anyone who spends more energy deciding where to start than doing the first small thing. The plan is deliberately modest: stopping after the first step still counts.&lt;/p&gt;

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

&lt;p&gt;There is no public deployment yet. To try it locally, install Ollama, download a model such as &lt;code&gt;llama3.2:3b&lt;/code&gt;, then serve the project folder with &lt;code&gt;python3 -m http.server 4173&lt;/code&gt; and open &lt;code&gt;http://localhost:4173&lt;/code&gt;. If the browser blocks the local model connection, follow the &lt;code&gt;OLLAMA_ORIGINS&lt;/code&gt; note in the README.&lt;/p&gt;

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

&lt;p&gt;The project is a static HTML, CSS, and JavaScript app with no build step. Its source is in &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;styles.css&lt;/code&gt;, and &lt;code&gt;app.js&lt;/code&gt;; setup instructions are in &lt;code&gt;README.md&lt;/code&gt;. A public repository link is not available yet.&lt;/p&gt;

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

&lt;p&gt;Soft Start calls Ollama's local &lt;code&gt;/api/tags&lt;/code&gt; endpoint to list installed models and &lt;code&gt;/api/chat&lt;/code&gt; to generate a structured plan. The user chooses the model, and the prompt is visible and editable in &lt;code&gt;app.js&lt;/code&gt;. Different pace settings change the guidance sent to the model, so the user can decide how ambitious the plan should be.&lt;/p&gt;

&lt;p&gt;The app itself has no server, account, API key, analytics, external font requests, or cloud AI dependency. It sends the task list only to the Ollama service running on the same device. Once Ollama and a model are installed, inference can run offline without a per-request API charge.&lt;/p&gt;

&lt;p&gt;The implementation was syntax-checked, but I could not exercise a live generation in this environment because Ollama and a downloaded model were not available.&lt;/p&gt;

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

&lt;p&gt;Task lists can contain personal details. Local inference keeps them off a hosted AI service, and offline use means the tool can still work without an internet connection after setup. Open-weight models also make the choice reversible: install a different model or adjust the prompt to change the assistant's behavior, without changing providers or rewriting the app around a closed API.&lt;/p&gt;

&lt;p&gt;That flexibility matters here more than chasing a single benchmark. A small model that runs on your own machine can turn a stuck moment into a first step, with no subscription or usage meter attached.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Tally: A Private, Local-First Receipt Organizer</title>
      <dc:creator>atharvarsingh2ee-lab</dc:creator>
      <pubDate>Tue, 13 Oct 2026 11:57:34 +0000</pubDate>
      <link>https://dev.to/atharvarsingh2ee-lab/tally-a-private-local-first-receipt-organizer-1eop</link>
      <guid>https://dev.to/atharvarsingh2ee-lab/tally-a-private-local-first-receipt-organizer-1eop</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;Tally is a receipt and invoice organizer for freelancers and solo business owners. It reads receipt images, extracts bookkeeping details for review, saves expenses in the browser, and exports them as CSV. It aims to help people keep expense records without adding another cloud bookkeeping subscription.&lt;/p&gt;

&lt;p&gt;The current demo supports manual entry, browser OCR, and CSV export. Local-model extraction is part of the app, but a model is not currently running in the hosted demo.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://literate-broccoli-xrrvg9vxw76p3wj9-8000.app.github.dev" rel="noopener noreferrer"&gt;Try Tally&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo is served from a Codespace and is available while that Codespace is running.&lt;/p&gt;

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

&lt;p&gt;The source files (&lt;code&gt;server.py&lt;/code&gt;, &lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;styles.css&lt;/code&gt;, and &lt;code&gt;app.js&lt;/code&gt;) are in my project workspace. I have not published a public GitHub repository yet.&lt;/p&gt;

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

&lt;p&gt;Tally uses Tesseract.js, an open-source OCR engine, to read receipt images in the browser. For field extraction, the Python server can send recognized text to an Ollama model running locally; the setup guide suggests &lt;code&gt;qwen2.5:3b&lt;/code&gt;. Extracted details are shown for review before saving. Expense records are stored in browser local storage.&lt;/p&gt;

&lt;p&gt;The public demo’s Codespace does not currently have Ollama or a model running, so AI extraction is unavailable there. When run locally with Ollama, the model request stays on that machine.&lt;/p&gt;

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

&lt;p&gt;A hosted AI API might be easier to operate, but it can add a per-document cost and requires sending receipt text to a third party. With Ollama, a freelancer can run inference on their own machine, avoid per-receipt model fees, and switch models or adjust prompts to suit their workflow. Tesseract.js also provides OCR without uploading the receipt to a recognition service.&lt;/p&gt;

&lt;p&gt;The tradeoff is setup: users need Ollama and a compatible model for extraction, and OCR downloads its library and language data from a CDN on first use. This public demo is a prototype, not a hosted private-inference service.&lt;/p&gt;

&lt;h1&gt;
  
  
  mlhacks:)
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>"Fieldnotes: A Local AI Garden Planner for Getting Outside"</title>
      <dc:creator>atharvarsingh2ee-lab</dc:creator>
      <pubDate>Sun, 11 Oct 2026 17:30:52 +0000</pubDate>
      <link>https://dev.to/atharvarsingh2ee-lab/fieldnotes-a-local-ai-garden-planner-for-getting-outside-152l</link>
      <guid>https://dev.to/atharvarsingh2ee-lab/fieldnotes-a-local-ai-garden-planner-for-getting-outside-152l</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;Fieldnotes is a browser-based garden planner that turns a few minutes of screen time into a practical reason to get outdoors. A gardener enters their region, hardiness zone, typical first frost, available growing space, and planting interests. Fieldnotes then creates a short weekend plan with manageable sowing, planting, and garden-care ideas.&lt;/p&gt;

&lt;p&gt;I built Fieldnotes to make getting started feel approachable, whether you have a raised bed, a balcony, or just a sunny windowsill. The goal is simple: get a useful plan, then put the phone away and spend some time outside.&lt;/p&gt;

&lt;p&gt;I’m Atharva, a student at Podar International School and an enthusiastic coder. I built this project to explore how open AI can support a small, practical habit in everyday life.&lt;/p&gt;

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

&lt;p&gt;The project is currently available as a local preview at &lt;code&gt;http://localhost:8000&lt;/code&gt;. It is not publicly deployed yet, so this address is only accessible in the development environment.&lt;/p&gt;

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

&lt;p&gt;The application source is in &lt;code&gt;index.html&lt;/code&gt; in this project. This workspace is not connected to a public Git repository, so a public source-code link is not available yet.&lt;/p&gt;

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

&lt;p&gt;Fieldnotes is built with HTML, CSS, and JavaScript. For AI, it uses the open-weight Qwen 2.5 0.5B Instruct model in quantized ONNX format, running in the browser through the open-source Transformers.js library.&lt;/p&gt;

&lt;p&gt;The browser loads the model on the first request, then uses it to turn the gardener’s selected details into four concise suggestions. Garden details are included only in the local prompt; the app does not send them to a hosted inference API. If the model cannot be loaded, Fieldnotes clearly labels its built-in starter suggestions as a fallback.&lt;/p&gt;

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

&lt;p&gt;Open-weight models make it possible to run this kind of assistant on the gardener’s own device instead of sending personal details to a closed, hosted AI service. That gives people more control over their data and lets developers inspect the model setup, adjust the prompt, or replace the model as the project grows.&lt;/p&gt;

&lt;p&gt;There is also no per-request API charge. After the app library and model have been downloaded and cached, the model’s inference can work without an internet connection. The first visit does require internet to download those assets, and the quality of its gardening suggestions still needs to be checked against local conditions.&lt;/p&gt;

&lt;p&gt;For Fieldnotes, open innovation makes a more private and adaptable tool possible: one that can help someone decide what to do in their garden without requiring an account or a permanent connection to an AI server. The screen is only the starting point; the best part of the plan happens outside.&lt;/p&gt;

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