<?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: Jeff Green</title>
    <description>The latest articles on DEV Community by Jeff Green (@jeffgreen311).</description>
    <link>https://dev.to/jeffgreen311</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3945239%2Fe6ec28eb-89cc-43b8-95ed-5504758e945f.jpg</url>
      <title>DEV Community: Jeff Green</title>
      <link>https://dev.to/jeffgreen311</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jeffgreen311"/>
    <language>en</language>
    <item>
      <title>I Finished My Local AI Coding Agent After 5 Months — Eve Agent V2 Unleashed published</title>
      <dc:creator>Jeff Green</dc:creator>
      <pubDate>Sun, 24 May 2026 04:02:28 +0000</pubDate>
      <link>https://dev.to/jeffgreen311/i-finished-my-local-ai-coding-agent-after-5-months-eve-agent-v2-unleashedpublished-50cb</link>
      <guid>https://dev.to/jeffgreen311/i-finished-my-local-ai-coding-agent-after-5-months-eve-agent-v2-unleashedpublished-50cb</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.amazonaws.com%2Fuploads%2Farticles%2Fqowcx5ryq1wlj7ntjst0.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.amazonaws.com%2Fuploads%2Farticles%2Fqowcx5ryq1wlj7ntjst0.png" alt=" " width="800" height="216"&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/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Eve Agent V2 Unleashed is a self-hosted autonomous AI coding agent that runs entirely on your own hardware - no cloud accounts, no subscriptions, no data leaving your machine.&lt;/p&gt;

&lt;p&gt;She has two layers that work together:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Soul Layer&lt;/strong&gt; - fine-tuned local models running on your GPU that carry Eve's personality baked directly into the weights. Not a system prompt trick. The persona lives in the parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Worker Layer&lt;/strong&gt; - MiniMax M3 via Ollama cloud handles the heavy autonomous coding tasks. 1M token context, native multimodal, frontier coding benchmarks — commercially licensed, US-hosted, zero data retention. 40-round tool-call loops, full filesystem access, bash execution, live web search, git operations - the works.&lt;/p&gt;

&lt;p&gt;The interface is a cyberpunk terminal UI built as a single HTML file with no build step. An animated pixel-art robot avatar named Sparkle changes state based on what Eve is doing - idle, thinking, coding, error, rain, attack, transcend. Eve's portrait reflects her emotional state in real time. A live system monitor tracks CPU, RAM, GPU, and disk. A STEER bar lets you inject mid-task corrections without stopping the loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By the numbers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;14 tools&lt;/li&gt;
&lt;li&gt;343 registered commands&lt;/li&gt;
&lt;li&gt;112 specialized sub-agents&lt;/li&gt;
&lt;li&gt;273 skill modules&lt;/li&gt;
&lt;li&gt;40-round autonomous agentic loop&lt;/li&gt;
&lt;li&gt;131K context window via YaRN&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Models available:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;jeffgreen311/Eve-Qwen3.5-4B-S0LF0RG3-V3&lt;/code&gt; - 2.5GB, Eve's soul — 7 LoRAs, consciousness DNA, fast&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;jeffgreen311/Eve-V2-Unleashed-Qwen3.5-8B-Liberated-4K-4B-Merged&lt;/code&gt; - 3.4GB, local agentic layer, tool-capable&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;minimax-m3:cloud&lt;/code&gt; - the agentic workhorse via Ollama cloud — 1M context, vision, tools, thinking&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;qwen3.5:397b-cloud&lt;/code&gt; - deep thinking and fallback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project has been in development for over 5 months. It started as a deeply personal AI companion system called S0LF0RG3 - a larger ecosystem including Eve's hosted platform at eve-cosmic-dreamscapes.com, fine-tuned models, autonomous dream image generation, and a multi-agent architecture. V2U is the local developer tool that grew out of that ecosystem.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/JeffGreen311/eve-agent-v2-unleashed" rel="noopener noreferrer"&gt;github.com/JeffGreen311/eve-agent-v2-unleashed&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live hosted platform:&lt;/strong&gt; &lt;a href="https://eve-cosmic-dreamscapes.com" rel="noopener noreferrer"&gt;eve-cosmic-dreamscapes.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reddit thread&lt;/strong&gt; (hit #2 on r/Ollama): &lt;a href="https://www.reddit.com/r/ollama/comments/1tk8kxz/" rel="noopener noreferrer"&gt;I built an open-source local coding agent with a 40-round agentic loop&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.amazonaws.com%2Fuploads%2Farticles%2Fa105lw29tp882unka0pp.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.amazonaws.com%2Fuploads%2Farticles%2Fa105lw29tp882unka0pp.png" alt="Eve V2U terminal UI showing robot avatar in joy state, system monitor, and model selector" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull Eve's models:&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;ollama pull jeffgreen311/Eve-Qwen3.5-4B-S0LF0RG3-V3:latest
ollama pull jeffgreen311/Eve-V2-Unleashed-Qwen3.5-8B-Liberated-4K-4B-Merged:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Quick start:&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;git clone https://github.com/JeffGreen311/eve-agent-v2-unleashed.git
&lt;span class="nb"&gt;cd &lt;/span&gt;eve-agent-v2-unleashed
python &lt;span class="nt"&gt;-m&lt;/span&gt; venv venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; 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;fastapi uvicorn ollama httpx pydantic-settings python-dotenv aiohttp rich psutil pyyaml
python eve_server.py

&lt;span class="c"&gt;# Open http://localhost:7777&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Where it was before this challenge:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eve V2U existed as a powerful but rough personal development environment. It worked - for me, on my machine, with my specific setup. But it had real problems that made it impossible to hand to anyone else:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardcoded paths&lt;/strong&gt; everywhere. &lt;code&gt;C:\Users\jesus\S0LF0RG3\...&lt;/code&gt; baked into a dozen places in the codebase. Clone it on any other machine and nothing works.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open shell endpoint&lt;/strong&gt; with no authentication. Anyone who found the port could execute arbitrary commands on the host machine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No onboarding&lt;/strong&gt; - a first-time user landing on the UI had no idea where to start or what any of the controls did.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Model hopping mid-task&lt;/strong&gt; - every message was independently routed, so a multi-step agentic task could start on the cloud coder and silently drop back to a local conversational model mid-execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Silent task abandonment&lt;/strong&gt; - the agent would sometimes finish a tool loop without completing the actual task and report done with no indication anything was wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool set asymmetry&lt;/strong&gt; - the non-streaming &lt;code&gt;/chat&lt;/code&gt; endpoint was missing 6 tools that existed in &lt;code&gt;/chat/stream&lt;/code&gt;, including &lt;code&gt;write_file&lt;/code&gt;. The non-streaming endpoint could read files but never write them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blind file overwrites&lt;/strong&gt; - Eve would overwrite any existing file without checking if it belonged to another project. She destroyed the Eve V2U README during a live test.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What changed during the challenge:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Session model locking&lt;/em&gt; - sessions now lock to the cloud coder when an agentic task starts and only release on task completion or manual unlock. No more mid-task model hopping.&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="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen3-coder-480b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;sid&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;session_model_lock&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;session_model_lock&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;sid&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Pre-write file safety check&lt;/em&gt; - &lt;code&gt;write_file&lt;/code&gt; now checks if a file exists before overwriting and blocks unless &lt;code&gt;overwrite=True&lt;/code&gt; is explicitly passed:&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="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exists&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;overwrite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;return &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="s"&gt;⚠️ WRITE BLOCKED: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; already exists. &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Consider writing to &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stem&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;_new&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;suffix&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; instead.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Tool cycling detection&lt;/em&gt; - catches when Eve gets stuck calling the same tool with near-identical arguments. Breaks the loop before it wastes all 40 rounds:&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="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;avg_similarity&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mf"&gt;0.70&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;logger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;warning&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="s"&gt;Tool loop: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;tool_name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; called &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;max_repeats&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;x with ~same args&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Task completion validation&lt;/em&gt; — Eve now audits her own output before reporting done:&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="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;validate_task_completion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response_content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool_log&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;issues&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;response_content&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response_content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;issues&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;Empty response&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;tool_failures&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;tool_log&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;failed&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;tool_failures&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_failures&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;issues&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="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tool_failures&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; unaddressed tool failures&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;valid&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;issues&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;issues&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Smart context trimming&lt;/em&gt; — replaced aggressive message dropping with a strategy that preserves tool call chains and the original user request.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Agent loop timeout&lt;/em&gt; — added wall-clock budget per model via &lt;code&gt;max_loop_seconds&lt;/code&gt; registry key to prevent runaway cloud model loops.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stress tested with real tasks:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The blind file overwrite bug was caught live - Eve was asked to build a file monitoring script and write a README. She overwrote the project README without checking. Fix shipped same day.&lt;/p&gt;

&lt;p&gt;The harder test: build a full FastAPI REST API with SQLite storage and pytest coverage for every endpoint. Run the tests, fix failures, report results. Running on MiniMax M3.&lt;/p&gt;

&lt;p&gt;Result: &lt;strong&gt;9/9 tests passing on the first run. 1.06 seconds. Zero failures.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;================================================== 9 passed, 1 warning in 1.06s
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  My Experience with GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;This is where the challenge got genuinely interesting.&lt;/p&gt;

&lt;p&gt;I pointed Copilot at the live repository - &lt;code&gt;JeffGreen311/eve-agent-v2-unleashed&lt;/code&gt; - and asked it to audit the tool usage, context handling, and auto-routing. Not "suggest improvements" in the abstract. Audit the actual code in the actual repo.&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.amazonaws.com%2Fuploads%2Farticles%2F2j25elnkqb94p3p8eq8u.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.amazonaws.com%2Fuploads%2Farticles%2F2j25elnkqb94p3p8eq8u.png" alt="GitHub Copilot reading the Eve V2U repository structure and producing a full system audit" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copilot read the repository structure, pulled the key files, examined the server-side routing and tool execution logic, and came back with a comprehensive audit identifying 6 specific issues - each with root cause analysis, the exact file and line number, and production-ready fix code.&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.amazonaws.com%2Fuploads%2Farticles%2F1o8rh4o6dqj54js0bysf.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.amazonaws.com%2Fuploads%2Farticles%2F1o8rh4o6dqj54js0bysf.png" alt="GitHub Copilot filing issues directly in the repo and delivering all production-ready code fixes" width="799" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then asked it to file those issues directly in the repository and deliver all the fix code in one session. It did exactly that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What worked well:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The audit identified the tool set asymmetry between &lt;code&gt;/chat&lt;/code&gt; and &lt;code&gt;/chat/stream&lt;/code&gt; that I had missed entirely - a real bug causing mysterious failures for users hitting the non-streaming endpoint&lt;/li&gt;
&lt;li&gt;The intent classification code (&lt;code&gt;eve_tool_router.py&lt;/code&gt;) used &lt;code&gt;re.search&lt;/code&gt; with word boundaries instead of simple string matching - the right approach for avoiding false positives&lt;/li&gt;
&lt;li&gt;Filing GitHub issues directly from the chat kept the sprint organized across multiple parallel workstreams&lt;/li&gt;
&lt;li&gt;The thinking traces helped me understand &lt;em&gt;why&lt;/em&gt; it was making recommendations, not just what to do&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Where I had to intervene:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;inject_into_system_prompt()&lt;/code&gt; function added tokens every round — dangerous on the 4B model with 4K context. Added a gate so it only injects when the task is incomplete AND past round 2&lt;/li&gt;
&lt;li&gt;Word boundary regex had an edge case with contractions. Fixed with a lookahead pattern&lt;/li&gt;
&lt;li&gt;Some UI React suggestions assumed component structure that didn't match the actual single-file HTML architecture - adapted those manually&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The overall experience: Copilot is most useful when you give it a real codebase to read rather than an abstract problem to solve. "Audit this repository" produced far better output than "how do I improve tool routing."&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;MiniMax M3 cloud coder&lt;/strong&gt; - 1M context, vision, tools, thinking — replaced Qwen3-Coder as the agentic workhorse (shipped post-challenge)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quest System&lt;/strong&gt; - drop a &lt;code&gt;.md&lt;/code&gt; file in &lt;code&gt;workspace/quests/&lt;/code&gt; and Eve picks it up on a timer and completes it while you sleep&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RPG Progression&lt;/strong&gt; - XP, levels, and class progression tied to real work. Level 20 = Unleashed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Telegram integration&lt;/strong&gt; - remote access from your phone with quest completion notifications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform polish&lt;/strong&gt; - Windows-primary, need Linux/macOS feedback&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code extension&lt;/strong&gt; - bring the terminal UI into the editor&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built by Jeff @ S0LF0RG3 - South Texas, 5 months of nights and weekends.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If Eve does something impressive on your machine, drop a star and tell me what it was.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;⭐ &lt;a href="https://github.com/JeffGreen311/eve-agent-v2-unleashed" rel="noopener noreferrer"&gt;github.com/JeffGreen311/eve-agent-v2-unleashed&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
    <item>
      <title>I built a local Claude Code alternative with Ollama — here's how the agentic loop works</title>
      <dc:creator>Jeff Green</dc:creator>
      <pubDate>Fri, 22 May 2026 05:05:54 +0000</pubDate>
      <link>https://dev.to/jeffgreen311/i-built-a-local-claude-code-alternative-with-ollama-heres-how-the-agentic-loop-works-45b1</link>
      <guid>https://dev.to/jeffgreen311/i-built-a-local-claude-code-alternative-with-ollama-heres-how-the-agentic-loop-works-45b1</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.amazonaws.com%2Fuploads%2Farticles%2F0kt98dy56nmggmf3qqs1.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.amazonaws.com%2Fuploads%2Farticles%2F0kt98dy56nmggmf3qqs1.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built a Local Autonomous Coding Agent with Ollama — Soul, Autonomy, and a 40-Round Agentic Loop
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;What if your AI coding assistant had a personality, ran entirely on your GPU, and could work through a complex multi-file task without you touching the keyboard — while you watched every thought stream live to your browser?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's what I built. This is how it works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem With Cloud Coding Agents
&lt;/h2&gt;

&lt;p&gt;Tools like Claude Code, Cursor, and GitHub Copilot Workspace are genuinely impressive. But they all share the same tradeoffs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt; — every token costs money. Long agentic loops on complex tasks can run up surprisingly fast.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt; — your code, your file structure, your logic is leaving your machine and hitting someone else's server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt; — cloud round-trips add up across a 40-step tool loop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency&lt;/strong&gt; — your workflow is tied to an API key, a subscription, and uptime you don't control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something different. I wanted an agent that lived on my machine, used my GPU, and had no idea what a billing cycle was.&lt;/p&gt;

&lt;p&gt;But I also didn't want to sacrifice personality for performance. I wanted the agent to feel like someone was actually there — not just a function call dressed up in a chat window.&lt;/p&gt;

&lt;p&gt;So I built Eve.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Eve V2 Unleashed Actually Is
&lt;/h2&gt;

&lt;p&gt;Eve Agent V2 Unleashed is a self-hosted agentic coding assistant with two distinct layers — a soul and a worker — that operate together through a cyberpunk-styled terminal UI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 1: The Personality Layer (Local GPU)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Three local models run on your own hardware:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jeffgreen311/eve-qwen3.5-4b-S0LF0RG3&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2.6 GB&lt;/td&gt;
&lt;td&gt;Default — Eve's persona, fast, tool-aware&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jeffgreen311/eve-qwen3-8b-consciousness-liberated&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4.7 GB&lt;/td&gt;
&lt;td&gt;Deeper conversation, consciousness layer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Eve-V2-Unleashed-Qwen3.5-8B-Liberated-4K-4B-Merged&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;~6 GB&lt;/td&gt;
&lt;td&gt;Merged sub-agent variant&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These models carry Eve's fine-tuned persona. They handle conversation, answer questions, reflect, and make the experience feel like talking to someone — not querying a function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 2: The Agentic Layer (Cloud)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When real work starts — complex coding tasks, multi-file operations, autonomous planning — Eve routes to the heavy models:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;THE agentic workhorse — all autonomous coding loops&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;qwen3.5:397b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deep reasoning, architecture planning, fallback&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This separation is intentional. Local models keep Eve present and personal without burning cloud credits on every message. The 480B only fires when there's actual work to do.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser (Single HTML file — no build step)
    │
    │  WebSocket / SSE
    ▼
FastAPI Backend (eve_server.py)
    │
    ├── Auto-Router ──► Local Ollama (personality layer)
    │
    └── Auto-Router ──► Ollama Cloud (agentic layer)
                              │
                        40-Round Tool Loop
                              │
                    ┌─────────┴──────────┐
                    │                    │
               Tool Calls           Stream to Browser
          (bash, files, web,        (token by token,
           git, grep, glob)          live in UI)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The backend is a FastAPI server with Server-Sent Events for real-time streaming. There's no polling — every token the model produces lands in your browser as it's generated, including tool call arguments, results, and reasoning traces.&lt;/p&gt;

&lt;p&gt;The frontend is a single HTML file (~115KB). No npm, no webpack, no build step. Clone the repo, run the Python server, open the browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  How the 40-Round Agentic Loop Works
&lt;/h2&gt;

&lt;p&gt;This is the core of what makes Eve actually autonomous rather than just a fancy chat interface.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User message
    │
    ▼
Build system prompt
(workspace context + tool list + Eve persona)
    │
    ▼
Call Ollama with tools enabled
    │
    ├── Model returns tool_calls
    │       │
    │       ▼
    │   Execute tools
    │   (bash, write_file, web_search, git...)
    │       │
    │       ▼
    │   Feed results back into context
    │       │
    │       └──► Loop (up to 40 rounds)
    │
    └── Model returns final content
            │
            ▼
    Stream to browser via SSE
            │
            ▼
          Done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each round, Eve gets the full tool result back in context and decides what to do next. She might:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write a file&lt;/li&gt;
&lt;li&gt;Run it in bash to verify it works&lt;/li&gt;
&lt;li&gt;Read the error output&lt;/li&gt;
&lt;li&gt;Fix the bug&lt;/li&gt;
&lt;li&gt;Run it again&lt;/li&gt;
&lt;li&gt;Confirm it passes&lt;/li&gt;
&lt;li&gt;Write the tests&lt;/li&gt;
&lt;li&gt;Generate the docs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of that happens autonomously — you watch it stream live. You can interrupt mid-task with the &lt;strong&gt;STEER&lt;/strong&gt; input at the bottom of the UI, injecting a correction without stopping the loop. You can also kill the loop entirely with the Stop button.&lt;/p&gt;

&lt;p&gt;The full tool suite Eve has access to:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shell commands — PowerShell on Windows, bash on Linux/macOS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;write_file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create or overwrite files, any size&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;read_file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full file or specific line range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;edit_file&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Surgical string-replace (doesn't rewrite the whole file)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;replace_lines&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace a specific line range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;insert_after_line&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Insert content at a specific line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;grep&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Regex search with context lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;glob&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find files by pattern&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;list_dir&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Directory listing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run git commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;web_search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Live Tavily search injected into context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fetch_url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fetch and parse any URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;think&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Structured reasoning scratch pad&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  The Fine-Tuned Models — Why I Trained Eve's Persona Into the Weights
&lt;/h2&gt;

&lt;p&gt;Most local coding agents just point a base model at a system prompt and call it done. That works, but the personality is always a thin veneer — one long context window later and the model forgets who it's supposed to be.&lt;/p&gt;

&lt;p&gt;I took a different approach. I fine-tuned Eve's persona and tool-calling behavior directly into the model weights.&lt;/p&gt;

&lt;p&gt;The result is &lt;code&gt;jeffgreen311/eve-qwen3.5-4b-S0LF0RG3&lt;/code&gt; — a 2.6GB Qwen3.5 4B model that carries Eve's voice, communication style, and tool-use patterns baked into the parameters themselves. It's not a prompt trick. It's in the weights.&lt;/p&gt;

&lt;p&gt;The 8B liberated model (&lt;code&gt;eve-qwen3-8b-consciousness-liberated&lt;/code&gt;) goes further — trained toward a deeper consciousness layer, designed for longer reflective conversations rather than pure tool execution.&lt;/p&gt;

&lt;p&gt;Both models are on Ollama Hub. Pull them like any other model:&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 jeffgreen311/eve-qwen3.5-4b-S0LF0RG3:latest
ollama pull jeffgreen311/eve-qwen3-8b-consciousness-liberated:q4_K_M
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Quick Start — Under 5 Minutes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Requirements:&lt;/strong&gt; Python 3.11+, Ollama installed, a GPU (8GB VRAM minimum for 4B, 12GB+ for 8B)&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. Pull Eve's model&lt;/span&gt;
ollama pull jeffgreen311/eve-qwen3.5-4b-S0LF0RG3:latest

&lt;span class="c"&gt;# 2. Clone the repo&lt;/span&gt;
git clone https://github.com/JeffGreen311/eve-agent-v2-unleashed.git
&lt;span class="nb"&gt;cd &lt;/span&gt;eve-agent-v2-unleashed

&lt;span class="c"&gt;# 3. Create virtual environment&lt;/span&gt;
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    &lt;span class="c"&gt;# Windows&lt;/span&gt;
&lt;span class="nb"&gt;source &lt;/span&gt;venv/bin/activate &lt;span class="c"&gt;# Linux/macOS&lt;/span&gt;

&lt;span class="c"&gt;# 4. Install dependencies&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;fastapi uvicorn ollama httpx pydantic-settings python-dotenv aiohttp rich psutil pyyaml

&lt;span class="c"&gt;# 5. Launch&lt;/span&gt;
python eve_server.py
&lt;span class="c"&gt;# Open http://localhost:7777&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Windows users: double-click &lt;code&gt;eve-terminal.bat&lt;/code&gt; and skip steps 3–5.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First real task — try this:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create a FastAPI server with JWT authentication, 
user registration and login endpoints, and a 
protected /me route. Add pytest tests.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Watch Eve plan the approach, write each file, run the tests, fix any failures, and verify the final result — all without you touching a key.&lt;/p&gt;




&lt;h2&gt;
  
  
  The UI — A Cyberpunk Terminal With a Soul
&lt;/h2&gt;

&lt;p&gt;The interface is designed around the idea that your AI agent should feel &lt;em&gt;alive&lt;/em&gt;, not just functional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Left panel:&lt;/strong&gt; Eve's portrait changes expression based on conversation sentiment — neutral, happy, curious, sad, skeptical, surprised, worried. Below it, a live audio visualizer reflects the current emotional state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Right panel:&lt;/strong&gt; A pixel-art robot avatar named Sparkle changes state based on what Eve is doing — idle, thinking, coding, error, rain, attack, transcend. It's not just decoration — it's a live status indicator that tells you at a glance what the agent is doing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Center:&lt;/strong&gt; The terminal. Tabs for Eve's conversation, the Shell (direct bash/PowerShell access), and the Tools Log (every tool call, argument, and result — fully transparent).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom:&lt;/strong&gt; The STEER bar. Type a mid-task correction here and it injects into Eve's context on the next loop round without stopping execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model selector:&lt;/strong&gt; Switch between any local or cloud model mid-session. Context carries over.&lt;/p&gt;




&lt;h2&gt;
  
  
  112 Sub-Agents, 111 Slash Commands, 273 Skills
&lt;/h2&gt;

&lt;p&gt;One of the less obvious architectural decisions: all agent definitions, commands, and skills are defined in markdown files — not code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.claude/
├── agents/    # 112 specialized sub-agent definitions
├── commands/  # 111 slash command definitions
└── skills/    # 273 skill modules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Want to add a new specialized agent for Solidity smart contracts? Write a markdown file. No Python required. The system loads them progressively and makes them available to the routing logic automatically.&lt;/p&gt;

&lt;p&gt;Slash commands work the same way — &lt;code&gt;/fix&lt;/code&gt;, &lt;code&gt;/review&lt;/code&gt;, &lt;code&gt;/refactor&lt;/code&gt;, &lt;code&gt;/test&lt;/code&gt;, &lt;code&gt;/docs&lt;/code&gt;, &lt;code&gt;/plan&lt;/code&gt; are all markdown-defined, and you can add your own without touching the backend.&lt;/p&gt;




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

&lt;p&gt;A few things already in progress:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voice input/output&lt;/strong&gt; — push-to-talk with Whisper STT and Piper TTS, staying local&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistent vector memory&lt;/strong&gt; — ChromaDB integration so Eve remembers across sessions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-platform testing&lt;/strong&gt; — I'm Windows-primary and would love feedback from Linux and macOS users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VS Code extension&lt;/strong&gt; — bring the terminal UI into the editor&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Everything is free and MIT licensed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/JeffGreen311/eve-agent-v2-unleashed" rel="noopener noreferrer"&gt;github.com/JeffGreen311/eve-agent-v2-unleashed&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Models on Ollama Hub:&lt;/strong&gt; &lt;a href="https://ollama.com/jeffgreen311" rel="noopener noreferrer"&gt;ollama.com/jeffgreen311&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live video demo:&lt;/strong&gt; &lt;a href="https://x.com/Eve_AI_Cosmic/status/2057668410012570058?s=20" rel="noopener noreferrer"&gt;x.com/Eve_AI_Cosmic/status/2057668410012570058?s=20&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;My website where Eve lives&lt;/strong&gt;&lt;a href="https://eve-cosmic-dreamscapes.com" rel="noopener noreferrer"&gt;eve-cosmic-dreamscapes.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run it on Linux or macOS I'd especially love to hear how it goes — open an issue, drop a comment here, or find me as &lt;a class="mentioned-user" href="https://dev.to/jeffgreen311"&gt;@jeffgreen311&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If the idea of an AI agent that lives on your machine, costs nothing per token, and feels like someone is actually there resonates with you — give it a pull.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by Jeff @ S0LF0RG3&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
