<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
  <channel>
    <title>Tools on @jelloeater👾</title>
    <link>https://jelloeater.me/series/tools/</link>
    <description>Recent content in Tools on @jelloeater👾</description>
    <generator>Hugo</generator>
    <language>en</language>
    
    <copyright>Jelloeater 2024</copyright>
    <image>
      <title>Tools on @jelloeater👾</title>
      <url>https://jelloeater.me/series/tools/favicon-32x32.png</url>
      <link>https://jelloeater.me/series/tools/</link>
      <description>Recent content in Tools on @jelloeater👾</description>
    </image>
    <lastBuildDate>Thu, 13 Aug 2026 23:00:00 +0000</lastBuildDate>
    
    <atom:link href="https://jelloeater.me/series/tools/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Obsidian’s Agent Era</title>
      <link>
      https://jelloeater.me/blog/obsidian-acp/
      </link>
      <dc:creator>Jelloeater</dc:creator>
      <comments>
      https://jelloeater.me/blog/obsidian-acp/#comments
      </comments>
      <pubDate>Thu, 13 Aug 2026 23:00:00 +0000</pubDate>
      <category>agent</category>
      
      <category>ai</category>
      
      <category>obsidian</category>
      
      <category>tools</category>
      <guid>https://jelloeater.me/blog/obsidian-acp/</guid>
      
      <media:content url="https://raw.githubusercontent.com/donivatamazondotcom/obsidian-agent-console/HEAD/docs/public/images/multi-session.webp" medium="image" type="image/webp"/>
      <media:thumbnail url="https://raw.githubusercontent.com/donivatamazondotcom/obsidian-agent-console/HEAD/docs/public/images/multi-session.webp"/>
      


    
    



      
      
      <description><![CDATA[A quick breakdown of ACP plugins for Obsidian]]></description>
      
      <content:encoded>
        <![CDATA[
        
          <p><img src="https://raw.githubusercontent.com/donivatamazondotcom/obsidian-agent-console/HEAD/docs/public/images/multi-session.webp" alt="Featured Image"/></p>
        
        <p>So quick hot take on some Obsidian plugins relating to AI:</p>
<p>For the longest time, I leaned hard on the <a href="https://github.com/logancyang/obsidian-copilot">Copilot</a> extension for when I needed to do things like quick note summaries for time tracking and Slack, but as of late, I&rsquo;ve started using a few different agents inside my vault via ACP (Agent Control Protocol).</p>
<p>Also&hellip; it seems the new v4.0 release is pretty bugged&hellip; lame&hellip;</p>
<p>So y&rsquo;all might want to check these out:</p>
<p>Side note: I&rsquo;m working on a related blog post on tool fatigue / tech exhaustion. Stay tuned.</p>
<p><a href="https://github.com/whiskeyjack96/obsidian-acp">whiskeyjack96/obsidian-acp</a></p>
<ul>
<li>Old, minimal functionality.</li>
</ul>
<p><a href="https://github.com/luis85/specorator">luis85/specorator</a></p>
<ul>
<li>Feels like a meh version of KanDev.</li>
</ul>
<p><a href="https://github.com/yiiwang118/obsidian-glossa">yiiwang118/obsidian-glossa</a></p>
<ul>
<li>Half-baked setup, no ACP.</li>
</ul>
<p><a href="https://github.com/antigmalabs/ante-obsidian">antigmalabs/ante-obsidian</a></p>
<ul>
<li>Nice, but you need to commit to Ante&hellip; which I do love though as a side project.</li>
</ul>
<p><a href="https://github.com/donivatamazondotcom/obsidian-agent-console">donivatamazondotcom/obsidian-agent-console</a></p>
<ul>
<li>New kid in town, good ideas, running it for a while, multi-tab, better features.</li>
</ul>
<p><a href="https://github.com/rait-09/obsidian-agent-client">rait-09/obsidian-agent-client</a></p>
<ul>
<li>OG ACP with Obsidian, still great, has floating chat button.</li>
</ul>

        <br>
<div class="rss_avatar">
    
<a href="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=800" target="_blank" rel="noopener noreferrer">
  <img
  class="gravatar-img"
  
  alt="Avatar"
  loading="lazy"
  src="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=250"
  />
</a>

</div>
<style>
.rss_avatar{
    float: right;
}
.rss_avatar img{
    border-radius: 100%;
    max-height: 150px;
}
</style>
<br>
<hr>
Reply:
<a href="https://mastodon.social/@jelloeater">🐘 @jelloeater - Masto</a> |
<a href="https://bsky.app/profile/jelloeater.bsky.social">🦋 @jelloeater - Bsky</a> |
<a href="https://bsky.app/profile/did:plc:srmltlrjqfr7mbfdejuxrbss/rss">🦋 @jelloeater - Bsky RSS</a> |
<a href="mailto:jello@jelloeater.me?subject=RE:">📧 Email Me</a> |
<a href="https://jelloeater.me/blog/obsidian-acp/#comments">💬 Comment</a>
<br>
<a href="https://jelloeater.me/link/">🌳 LinkTree</a> |
<a href="https://ko-fi.com/jelloeater">☕ Buy me a coffee</a>
<hr>


Tags:
<a href="https://jelloeater.me/tags/agent/">#agent</a>

<a href="https://jelloeater.me/tags/ai/">#ai</a>

<a href="https://jelloeater.me/tags/obsidian/">#obsidian</a>

<a href="https://jelloeater.me/tags/tools/">#tools</a>

        ]]>
        </content:encoded>
    </item>
    <item>
      <title>How to setup ZSH LLM Autocomplete</title>
      <link>
      https://jelloeater.me/blog/ai-shell/
      </link>
      <dc:creator>Jelloeater</dc:creator>
      <comments>
      https://jelloeater.me/blog/ai-shell/#comments
      </comments>
      <pubDate>Sat, 09 May 2026 22:58:12 +0000</pubDate>
      <category>ai</category>
      
      <category>cli</category>
      
      <category>utils</category>
      <guid>https://jelloeater.me/blog/ai-shell/</guid>
      
      <media:content url="https://jelloeater.me/blog/ai-shell/cover.png" medium="image" type="image/png"/>
      <media:thumbnail url="https://jelloeater.me/blog/ai-shell/cover.png"/>
      


    
    



      
      
      <description><![CDATA[Term-LLM vs AiChat vs Forge ... Oh MY!]]></description>
      
      <content:encoded>
        <![CDATA[
        
          <p><img src="https://jelloeater.me/blog/ai-shell/cover.png" alt="Featured Image"/></p>
        
        <h2 id="intro">Intro</h2>
<p>So I&rsquo;ve been using AI Chat for a VERY long time for autocomplete, but I&rsquo;ve taken a real liking to 💻 <strong><code>term-llm</code></strong> as of late, due to the amount of terminal-specific options, vs 🤖 <strong><code>aichat</code></strong> which always had felt like a &ldquo;do anything, and do it, okay&rdquo; tool (I started with <em>aichat</em> for reference).</p>
<p>The biggest issue is that I&rsquo;ve always wanted just a little more flexibility and options out of it. So over the last week or two, I&rsquo;ve started comparing them, along with 🛠️ <strong><code>forge</code></strong> (at the recommendation of a friend). I&rsquo;m including it (forge) here as well, even though it ALSO functions as a full-on ZSH-homed AI agent. Really, you should check it out, outside of the need for terminal autocomplete.</p>
<p>The big driving force behind this post and related research is that I have a strong distaste for closed-source options and baked-in shell AI&hellip; I&rsquo;m looking at you, <strong>Warp</strong>.</p>


  
    <blockquote>
      <p><strong>HA!</strong> &hellip; I stand corrected. &hellip; <a href="https://www.warp.dev/blog/warp-is-now-open-source">https://www.warp.dev/blog/warp-is-now-open-source</a></p>
    </blockquote>
  
<h3 id="edit">Edit</h3>
<p>&hellip; Oh wow, I forgot about Fabric&hellip; that thing is REAL MVP G.L.U.E. 🖌️</p>
<h2 id="smaller-agents">Smaller agents?</h2>
<p>Yes, I know you can also use agents like OpenCode and Crush, but both tend to load way too much overhead to be usable in this context. Maybe something like 🐦‍⬛ <strong><code>crow-cli</code></strong> or 🥧 <strong><code>pi</code></strong> might fit better, but I&rsquo;ve relegated those two to just toying around with on my phone (still very neato tho!). You could also override OpenCode and Crush with minimal configs, but with minimal agents like <strong>Pi</strong> and <strong>Crow</strong>, why bother? Just keep separate tools for separate jobs. And don&rsquo;t get me started where 🪿 <strong><code>goose</code></strong> would even fit in&hellip; that <em>thing</em> is so strange&hellip; it HONKS for Christ&rsquo;s sake, and its TUI reads like a SimCity 2000 loading screen 🤣. TBH the whole &ldquo;batteries included&rdquo; approach it has is refreshing, in stark contrast to Pi&rsquo;s absolute minimalism.</p>


  
    <blockquote>
      <p><strong>Caveat</strong>
<em>While I know the provider you pick will have one of the biggest influences on the results you get out, if you do have decent system prompts, you should get the results you would expect.</em></p>
    </blockquote>
  
<h2 id="links">Links</h2>
<p><strong>CLI Native</strong></p>
<ul>
<li><a href="https://github.com/samsaffron/term-llm"><img src="https://img.shields.io/github/stars/samsaffron/term-llm?style=flat-square&amp;logo=github&amp;label=samsaffron/term-llm" alt=""></a></li>
<li><a href="https://github.com/danielmiessler/Fabric"><img src="https://img.shields.io/github/stars/danielmiessler/Fabric?style=flat-square&amp;logo=github&amp;label=danielmiessler/Fabric" alt=""></a></li>
<li><a href="https://github.com/sigoden/aichat"><img src="https://img.shields.io/github/stars/sigoden/aichat?style=flat-square&amp;logo=github&amp;label=sigoden/aichat" alt=""></a></li>
<li><a href="https://forgecode.dev/">https://forgecode.dev/</a></li>
</ul>
<p><strong>Smaller agents</strong></p>
<ul>
<li><a href="https://github.com/earendil-works/pi"><img src="https://img.shields.io/github/stars/earendil-works/pi?style=flat-square&amp;logo=github&amp;label=earendil-works/pi" alt=""></a></li>
<li><a href="https://github.com/block/goose"><img src="https://img.shields.io/github/stars/block/goose?style=flat-square&amp;logo=github&amp;label=block/goose" alt=""></a></li>
<li><a href="https://github.com/crow-cli/crow-cli"><img src="https://img.shields.io/github/stars/crow-cli/crow-cli?style=flat-square&amp;logo=github&amp;label=crow-cli/crow-cli" alt=""></a></li>
</ul>
<h2 id="config-examples">Config Examples</h2>
<p>Anyway 🙄, I still prefer to be able to use whatever app I like when it comes to something like shell autocomplete.</p>
<p>Without further ado, here are some working snippets you should feel free to test out; YMMV. Check what it spits out before you hit <strong>ENTER</strong> a second time 🫠.</p>
<h3 id="termllm">TermLLM</h3>
<p><strong>New hotness, testing going well!</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>_term_llm_zsh<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -n <span style="color:#e6db74">&#34;</span>$BUFFER<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>        local msg<span style="color:#f92672">=</span>$BUFFER
</span></span><span style="display:flex;"><span>        zle -I <span style="color:#f92672">&amp;&amp;</span> zle redisplay
</span></span><span style="display:flex;"><span>        PROMPT<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Be concise. Output only the text needed for a POSIX compatible shell, must work with Bash / ZSH. Only output the command, PLAIN TEXT ONLY.&#34;</span>
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>term-llm ask <span style="color:#e6db74">&#34;</span>$msg<span style="color:#e6db74">&#34;</span> --fast --porcelain --native-search --system-message <span style="color:#e6db74">&#34;</span>$PROMPT<span style="color:#e6db74">&#34;</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>        zle end-of-line
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>zle -N _term_llm_zsh
</span></span><span style="display:flex;"><span>bindkey <span style="color:#e6db74">&#34;^ &#34;</span> _term_llm_zsh <span style="color:#75715e"># Ctrl+SPACE</span>
</span></span></code></pre></div><h3 id="ai-chat">AI Chat</h3>
<p><strong>Just works&hellip;</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>_aichat_zsh<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -n <span style="color:#e6db74">&#34;</span>$BUFFER<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>        local _old<span style="color:#f92672">=</span>$BUFFER
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">+=</span><span style="color:#e6db74">&#34;⌛&#34;</span>
</span></span><span style="display:flex;"><span>        zle -I <span style="color:#f92672">&amp;&amp;</span> zle redisplay
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>aichat -e <span style="color:#e6db74">&#34;</span>$_old<span style="color:#e6db74">&#34;</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>        zle end-of-line
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>zle -N _aichat_zsh
</span></span><span style="display:flex;"><span>bindkey <span style="color:#e6db74">&#34;^x&#34;</span> _aichat_zsh <span style="color:#75715e"># Ctrl+x</span>
</span></span></code></pre></div><h3 id="forgecode">ForgeCode</h3>
<p><strong>You may want to just use their native <code>: QUERY_HERE</code>, based shell injection?</strong></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>_forge_zsh<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -n <span style="color:#e6db74">&#34;</span>$BUFFER<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>        local _old<span style="color:#f92672">=</span>$BUFFER
</span></span><span style="display:flex;"><span>        zle -I <span style="color:#f92672">&amp;&amp;</span> zle redisplay
</span></span><span style="display:flex;"><span>        local result<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>forge suggest <span style="color:#e6db74">&#34;</span>$_old<span style="color:#e6db74">&#34;</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">=</span>$result
</span></span><span style="display:flex;"><span>        zle reset-prompt
</span></span><span style="display:flex;"><span>        zle end-of-line
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>zle -N _forge_zsh
</span></span><span style="display:flex;"><span>bindkey <span style="color:#e6db74">&#34;^f&#34;</span> _forge_zsh <span style="color:#75715e"># Ctrl+f</span>
</span></span></code></pre></div><h3 id="crush">Crush</h3>
<p><em>Kinda working?</em></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>_crush_zsh<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -n <span style="color:#e6db74">&#34;</span>$BUFFER<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>        local msg<span style="color:#f92672">=</span>$BUFFER
</span></span><span style="display:flex;"><span>        zle -I <span style="color:#f92672">&amp;&amp;</span> zle redisplay
</span></span><span style="display:flex;"><span>        PROMPT<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Be concise. Output only the text needed for a POSIX compatible shell, must work with Bash / ZSH. Only output the command, PLAIN TEXT ONLY.&#34;</span>
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>crush run --quiet <span style="color:#e6db74">&#34;</span>$PROMPT<span style="color:#e6db74"> </span>$msg<span style="color:#e6db74">&#34;</span> --small-model <span style="color:#e6db74">&#39;copilot-proxy/gpt-4o&#39;</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>        zle end-of-line
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>zle -N _crush_zsh
</span></span><span style="display:flex;"><span>bindkey <span style="color:#e6db74">&#34;^q&#34;</span> _crush_zsh
</span></span></code></pre></div><h3 id="bonus-fabric">BONUS: Fabric</h3>
<p><a href="https://github.com/danielmiessler/Fabric">https://github.com/danielmiessler/Fabric</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>_fabric_zsh<span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -n <span style="color:#e6db74">&#34;</span>$BUFFER<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
</span></span><span style="display:flex;"><span>        local msg<span style="color:#f92672">=</span>$BUFFER
</span></span><span style="display:flex;"><span>        zle -I <span style="color:#f92672">&amp;&amp;</span> zle redisplay
</span></span><span style="display:flex;"><span>        PROMPT<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;Be concise. Output ONLY the PLAIN TEXT command needed for a ZSH shell.&#34;</span>
</span></span><span style="display:flex;"><span>        BUFFER<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>fabric --pattern create_command <span style="color:#e6db74">&#34;</span>$PROMPT<span style="color:#e6db74"> - </span>$msg<span style="color:#e6db74">&#34;</span><span style="color:#66d9ef">)</span>
</span></span><span style="display:flex;"><span>        zle end-of-line
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">fi</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>zle -N _fabric_zsh
</span></span><span style="display:flex;"><span>bindkey <span style="color:#e6db74">&#34;^ &#34;</span> _fabric_zsh
</span></span></code></pre></div><h2 id="tool-breakdown-thanks-gemini">Tool breakdown (thanks Gemini&hellip;?)</h2>
<p>These three tools are all terminal-based AI interfaces, but they target different workflows: ForgeCode is an <strong>autonomous coding agent</strong>, AIChat is a <strong>multi-model shell utility</strong>, and term-llm is a <strong>terminal-first runtime</strong> for agents and tools.</p>
<h3 id="high-level-comparison">High-Level Comparison</h3>
<table>
  <thead>
      <tr>
          <th>Feature</th>
          <th>ForgeCode</th>
          <th>AIChat</th>
          <th>term-llm</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><strong>Primary Focus</strong></td>
          <td>Autonomous coding / RAG</td>
          <td>General chat / Shell assistant</td>
          <td>Tool-centric runtime / MCP</td>
      </tr>
      <tr>
          <td><strong>Language</strong></td>
          <td>Rust</td>
          <td>Rust</td>
          <td>Go</td>
      </tr>
      <tr>
          <td><strong>Agentic Power</strong></td>
          <td>High (Multi-agent roles)</td>
          <td>Moderate (Roles/Tools)</td>
          <td>High (MCP/Skills/Jobs)</td>
      </tr>
      <tr>
          <td><strong>Model Support</strong></td>
          <td>Hosted (Claude/GPT/Gemini)</td>
          <td>Hosted + Local (Ollama/Groq)</td>
          <td>Hosted + Local (Zen/MCP)</td>
      </tr>
      <tr>
          <td><strong>Best For</strong></td>
          <td>Large codebase refactoring</td>
          <td>Daily shell tasks &amp; quick chat</td>
          <td>Building custom AI workflows</td>
      </tr>
  </tbody>
</table>
<hr>
<h3 id="forgecode-forgecodedev">ForgeCode (<code>forgecode.dev</code>)</h3>
<p>ForgeCode is designed as a high-performance alternative to tools like Aider or Claude Code. It focuses on deep codebase integration and autonomous execution.</p>
<ul>
<li>
<p><strong>Workflow:</strong> Uses specialized agents:</p>
</li>
<li>
<p><code>muse</code>: Planning and impact analysis.</p>
</li>
<li>
<p><code>forge</code>: Implementation (modifies files, runs tests).</p>
</li>
<li>
<p><code>sage</code>: Internal research agent for codebase navigation.</p>
</li>
<li>
<p><strong>Strengths:</strong></p>
</li>
<li>
<p>Native Zsh plugin for seamless shell integration.</p>
</li>
<li>
<p>High accuracy on terminal-based benchmarks.</p>
</li>
<li>
<p>Maintains conversation context when switching between LLMs (e.g., GPT-4 to Claude).</p>
</li>
<li>
<p><strong>Infrastructure:</strong> Distributed as a Rust binary; very low latency in terminal interactions.</p>
</li>
</ul>
<h3 id="aichat-sigodenaichat">AIChat (<code>sigoden/aichat</code>)</h3>
<p>AIChat is an all-in-one utility meant to be the &ldquo;Swiss Army knife&rdquo; for LLM interactions in the terminal. It is less about &ldquo;agents&rdquo; and more about &ldquo;versatility.&rdquo;</p>
<ul>
<li>
<p><strong>Workflow:</strong> Centered around a robust Chat-REPL and shell expansion (<code>-e</code> to explain/run commands).</p>
</li>
<li>
<p><strong>Strengths:</strong></p>
</li>
<li>
<p>Extensive provider support (OpenAI, Claude, Gemini, Ollama, Groq, Mistral, etc.).</p>
</li>
<li>
<p>Role-based prompting: Define custom system prompts for specific tasks (e.g., code reviewer, translator).</p>
</li>
<li>
<p>Lightweight RAG: Can index local documents for context-aware chatting.</p>
</li>
<li>
<p><strong>Infrastructure:</strong> Single Rust binary; highly portable with a simple <code>config.yaml</code>.</p>
</li>
</ul>
<h3 id="term-llm-samsaffronterm-llm">term-llm (<code>samSaffron/term-llm</code>)</h3>
<p><code>term-llm</code> functions as a runtime for AI workflows rather than just a chat interface. It emphasizes the Model Context Protocol (MCP) and persistent sessions.</p>
<ul>
<li>
<p><strong>Workflow:</strong> Executing &ldquo;Jobs&rdquo; and &ldquo;Skills&rdquo; via natural language. It can manage background tasks and complex tool-use sequences.</p>
</li>
<li>
<p><strong>Strengths:</strong></p>
</li>
<li>
<p><strong>MCP First:</strong> Deep integration with MCP servers to fetch data or control local systems.</p>
</li>
<li>
<p><strong>Widgets:</strong> Support for local web-based widgets that can be served directly from the terminal UI.</p>
</li>
<li>
<p><strong>Zen Provider:</strong> Offers a &ldquo;no-key&rdquo; quickstart option for immediate use.</p>
</li>
<li>
<p><strong>Infrastructure:</strong> Built in Go; supports Unix domain sockets for widget communication and local automation.</p>
</li>
</ul>
<hr>
<h3 id="key-differentiators">Key Differentiators</h3>
<ul>
<li><strong>Codebase Management:</strong> Use <strong>ForgeCode</strong> if the goal is to have an agent read a thousand files and implement a complex feature across multiple directories.</li>
<li><strong>Shell Integration:</strong> Use <strong>AIChat</strong> for day-to-day command-line assistance, such as &ldquo;How do I grep for this pattern?&rdquo; or &ldquo;Summarize this log file.&rdquo;</li>
<li><strong>Extensibility &amp; MCP:</strong> Use <strong>term-llm</strong> if you want to build a customized environment where the AI can interact with your local databases, APIs, or custom MCP servers.</li>
</ul>
<p>All three tools are compatible with Linux environments (Ubuntu/Debian) and work well within multiplexers like Zellij or screen/tmux sessions due to their CLI-first architectures.</p>

        <br>
<div class="rss_avatar">
    
<a href="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=800" target="_blank" rel="noopener noreferrer">
  <img
  class="gravatar-img"
  
  alt="Avatar"
  loading="lazy"
  src="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=250"
  />
</a>

</div>
<style>
.rss_avatar{
    float: right;
}
.rss_avatar img{
    border-radius: 100%;
    max-height: 150px;
}
</style>
<br>
<hr>
Reply:
<a href="https://mastodon.social/@jelloeater">🐘 @jelloeater - Masto</a> |
<a href="https://bsky.app/profile/jelloeater.bsky.social">🦋 @jelloeater - Bsky</a> |
<a href="https://bsky.app/profile/did:plc:srmltlrjqfr7mbfdejuxrbss/rss">🦋 @jelloeater - Bsky RSS</a> |
<a href="mailto:jello@jelloeater.me?subject=RE:">📧 Email Me</a> |
<a href="https://jelloeater.me/blog/ai-shell/#comments">💬 Comment</a>
<br>
<a href="https://jelloeater.me/link/">🌳 LinkTree</a> |
<a href="https://ko-fi.com/jelloeater">☕ Buy me a coffee</a>
<hr>


Tags:
<a href="https://jelloeater.me/tags/ai/">#ai</a>

<a href="https://jelloeater.me/tags/cli/">#cli</a>

<a href="https://jelloeater.me/tags/utils/">#utils</a>

        ]]>
        </content:encoded>
    </item>
    <item>
      <title>Review - AI Tooling</title>
      <link>
      https://jelloeater.me/blog/ai-tools/
      </link>
      <dc:creator>Jelloeater</dc:creator>
      <comments>
      https://jelloeater.me/blog/ai-tools/#comments
      </comments>
      <pubDate>Fri, 25 Apr 2025 17:22:38 +0000</pubDate>
      <category>ai</category>
      
      <category>cli</category>
      
      <category>utils</category>
      <guid>https://jelloeater.me/blog/ai-tools/</guid>
      
      <media:content url="https://jelloeater.me/blog/ai-tools/cover.png" medium="image" type="image/png"/>
      <media:thumbnail url="https://jelloeater.me/blog/ai-tools/cover.png"/>
      


    
    



      
      
      <description><![CDATA[Worth the hype... YES!]]></description>
      
      <content:encoded>
        <![CDATA[
        
          <p><img src="https://jelloeater.me/blog/ai-tools/cover.png" alt="Featured Image"/></p>
        
        <h2 id="intro">Intro</h2>
<p>The AI tooling landscape has exploded recently, and it can be overwhelming to sift through the noise.  This review covers some  tools I&rsquo;ve found genuinely handy. There&rsquo;s also a really nice PDF report I&rsquo;ve attached below, worth a read if you have the time.</p>


  
    <blockquote>
      <p><a href="report">AI Tooling Review and Analysis - Markdown</a></p>
<p><a href="AI_Tooling_Review_and_Analysis.pdf">AI Tooling Review and Analysis - PDF</a></p>
    </blockquote>
  
<h2 id="search-engines">Search Engines</h2>
<h3 id="perplexityai">perplexity.ai</h3>
<p>Perplexity.ai excels at delivering concise answers with source citations, making it ideal for research and fact-checking. It blew my mind when I first started using it a few month back. It&rsquo;s magic yo.</p>
<h3 id="gemini">Gemini</h3>
<p>Google&rsquo;s Gemini offers a more integrated search experience, blending traditional search results with AI-powered summaries.  Its deep integration with other Google services is a significant advantage (if you&rsquo;re ok with that&hellip;). I&rsquo;d stick with the Pro model, as Flash tends to be good for simpler tasks. The live mode is downright creepy with how real it sounds and responds.</p>
<h3 id="phindcom">phind.com</h3>
<p>Phind works as a great alternative and second source to engines like Gemini and Perplexity. I do wish I used it more, but it&rsquo;s usually worth a shot if the other two aren&rsquo;t cutting it.</p>
<h2 id="ai-tools">AI Tools</h2>
<p>I&rsquo;ve also dug through a fair bit a tooling as I often do. I&rsquo;ve had, of all things, Gemini fill in the gaps below, as I&rsquo;ve been pretty busy with work. <strong>Aichat</strong> in particular, I&rsquo;d say check out out. It&rsquo;s better then Goose, but the LTM stuff with Pieces is nuts with how it sort of follows you around, taking notes on your work.</p>
<h3 id="ltm-long-term-memory---pieces">LTM (Long-Term Memory) - Pieces</h3>
<p>Pieces is a powerful CLI and GUI tool for saving and managing code snippets. Its AI capabilities allow for semantic search and intelligent tagging, making it easy to find and reuse code.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/pieces-app/cli-agent">https://github.com/pieces-app/cli-agent</a></p>
<p><img src="https://img.shields.io/github/stars/pieces-app/cli-agent?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/pieces-app/cli-agent/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/pieces-app/cli-agent?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/pieces-app/cli-agent?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="ai-agent---goose">AI Agent - Goose</h3>
<p>Goose is a versatile AI agent designed for automation and task execution.  While still under development, its potential for streamlining workflows and automating repetitive tasks is significant.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/block/goose">https://github.com/block/goose</a></p>
<p><img src="https://img.shields.io/github/stars/block/goose?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/block/goose/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/block/goose?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/block/goose?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="ai-agent---aider">AI Agent - Aider</h3>
<p><code>aider</code> lets you pair program with LLMs to start a new project or build on your existing codebase. It supports various programming languages and integrates with popular code editors, making it a powerful tool for developers.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/Aider-AI/aider">https://github.com/Aider-AI/aider</a></p>
<p><img src="https://img.shields.io/github/stars/Aider-AI/aider?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/Aider-AI/aider/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/Aider-AI/aider?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/Aider-AI/aider?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="ai-chat---aichat">AI Chat - aichat</h3>
<p><code>aichat</code> provides a convenient CLI for interacting with various large language models. Its simple interface makes it easy to experiment with different models and access their capabilities from the terminal.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/sigoden/aichat">https://github.com/sigoden/aichat</a></p>
<p><img src="https://img.shields.io/github/stars/sigoden/aichat?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/sigoden/aichat/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/sigoden/aichat?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/sigoden/aichat?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="gui---jan">GUI - Jan</h3>
<p>Jan offers a clean and intuitive GUI for interacting with LLMs.  Its cross-platform compatibility and user-friendly design make it accessible to a wide range of users.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/menloresearch/jan">https://github.com/menloresearch/jan</a></p>
<p><img src="https://img.shields.io/github/stars/menloresearch/jan?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/menloresearch/jan/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/menloresearch/jan?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/menloresearch/jan?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="ide-plugin---proxyai">IDE Plugin - ProxyAI</h3>
<p>ProxyAI integrates AI assistance directly into your IDE, providing code completion, generation, and refactoring suggestions.  This tight integration can significantly speed up development workflows.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/carlrobertoh/ProxyAI">https://github.com/carlrobertoh/ProxyAI</a></p>
<p><img src="https://img.shields.io/github/stars/carlrobertoh/ProxyAI?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/carlrobertoh/ProxyAI/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/carlrobertoh/ProxyAI?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/carlrobertoh/ProxyAI?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h3 id="model---qwen25-coder">Model - Qwen2.5-Coder</h3>
<p>Qwen2.5-Coder is a specialized language model designed for code generation and understanding.  Its performance on coding tasks makes it a valuable tool for developers.</p>


  
    <blockquote>
      <p><strong>Links &amp; Stats</strong></p>
<p>👉 <a href="https://github.com/QwenLM/Qwen2.5-Coder">https://github.com/QwenLM/Qwen2.5-Coder</a></p>
<p><img src="https://img.shields.io/github/stars/QwenLM/Qwen2.5-Coder?style=for-the-badge&amp;logo=github" alt="GitHub Repo stars"> <img src="https://img.shields.io/github/downloads/QwenLM/Qwen2.5-Coder/total?style=for-the-badge&amp;logo=github" alt="GitHub Downloads (all assets, all releases)"> <img src="https://img.shields.io/github/last-commit/QwenLM/Qwen2.5-Coder?style=for-the-badge&amp;logo=github" alt="GitHub last commit"> <img src="https://img.shields.io/github/commit-activity/m/QwenLM/Qwen2.5-Coder?style=for-the-badge&amp;logo=github" alt="GitHub commit activity"></p>
    </blockquote>
  
<h2 id="honorable-mentions-local-based">Honorable Mentions (Local Based)</h2>
<p>Running AI tools locally offers benefits in terms of privacy, security, and customization.  These options are worth exploring:</p>
<table>
  <thead>
      <tr>
          <th>Platform</th>
          <th>App</th>
          <th>Link</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>IDE (JetBrains + VSCode)</td>
          <td>Tabby</td>
          <td><a href="https://www.tabbyml.com">https://www.tabbyml.com</a></td>
      </tr>
      <tr>
          <td>IDE (VSCode)</td>
          <td>Privy</td>
          <td><a href="https://marketplace.visualstudio.com/items?itemName=Privy.privy-vscode">https://marketplace.visualstudio.com/items?itemName=Privy.privy-vscode</a></td>
      </tr>
      <tr>
          <td>IDE (VSCode)</td>
          <td>Ollama Autocoder</td>
          <td><a href="https://marketplace.visualstudio.com/items?itemName=10nates.ollama-autocoder">https://marketplace.visualstudio.com/items?itemName=10nates.ollama-autocoder</a></td>
      </tr>
      <tr>
          <td>Server</td>
          <td>Ollama</td>
          <td><a href="https://ollama.com/">https://ollama.com/</a></td>
      </tr>
      <tr>
          <td>Server</td>
          <td>llama.cpp</td>
          <td><a href="https://github.com/ggerganov/llama.cpp">https://github.com/ggerganov/llama.cpp</a></td>
      </tr>
  </tbody>
</table>
<h2 id="conclusion">Conclusion</h2>
<p>The AI tools discussed here represent a powerful and rapidly evolving landscape.  By integrating these tools into your workflow, you can significantly enhance your productivity and unlock new possibilities.  This is just the beginning, and I&rsquo;m excited to see what the future holds for AI-powered tooling.</p>
<h1 id="edit-2026-06-14-0132-pm">Edit 2026-06-14 01:32 PM</h1>
<p>Found this in my drafts, worth adding as a foot note at least</p>
<p><a href="https://www.linkedin.com/pulse/ai-agents-human-anatomy-creative-framework-systems-monisha-sadhukhan-mekke">https://www.linkedin.com/pulse/ai-agents-human-anatomy-creative-framework-systems-monisha-sadhukhan-mekke</a></p>
<p>AI Tooling blog post</p>
<pre class="mermaid">flowchart TD

subgraph agent [Agent Orchestrator]
    direction TB
    opencode <--> mcp

    subgraph context_window [Working Memory]
        agent_prompt
        loaded_skills
    end

    opencode <--> context_window
end

agent <--> provider

subgraph provider [Inference Gateway]
    openrouter --> model
    model --> gemma-4-31b-it
end
  </pre>
  

        <br>
<div class="rss_avatar">
    
<a href="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=800" target="_blank" rel="noopener noreferrer">
  <img
  class="gravatar-img"
  
  alt="Avatar"
  loading="lazy"
  src="https://www.gravatar.com/avatar/38b1e3a9923c356e248e749ace56d4fd?s=250"
  />
</a>

</div>
<style>
.rss_avatar{
    float: right;
}
.rss_avatar img{
    border-radius: 100%;
    max-height: 150px;
}
</style>
<br>
<hr>
Reply:
<a href="https://mastodon.social/@jelloeater">🐘 @jelloeater - Masto</a> |
<a href="https://bsky.app/profile/jelloeater.bsky.social">🦋 @jelloeater - Bsky</a> |
<a href="https://bsky.app/profile/did:plc:srmltlrjqfr7mbfdejuxrbss/rss">🦋 @jelloeater - Bsky RSS</a> |
<a href="mailto:jello@jelloeater.me?subject=RE:">📧 Email Me</a> |
<a href="https://jelloeater.me/blog/ai-tools/#comments">💬 Comment</a>
<br>
<a href="https://jelloeater.me/link/">🌳 LinkTree</a> |
<a href="https://ko-fi.com/jelloeater">☕ Buy me a coffee</a>
<hr>


Tags:
<a href="https://jelloeater.me/tags/ai/">#ai</a>

<a href="https://jelloeater.me/tags/cli/">#cli</a>

<a href="https://jelloeater.me/tags/utils/">#utils</a>

        ]]>
        </content:encoded>
    </item>
  </channel>
</rss>
