<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ai on Backend Engineering Strategy Tools</title><link>https://backend-engineering-strategy-tools.github.io/site/tags/ai/</link><description>Recent content in Ai on Backend Engineering Strategy Tools</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://backend-engineering-strategy-tools.github.io/site/tags/ai/index.xml" rel="self" type="application/rss+xml"/><item><title>AI Chat Tools</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/ai/ai-chat/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/ai/ai-chat/</guid><description>&lt;p&gt;Browser-based chat interfaces to large language models. None of these require setup — open a tab and start typing. The differences are in what each is good at, not in how they work.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="the-tools"&gt;The tools
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tool&lt;/th&gt;
 &lt;th&gt;Provider&lt;/th&gt;
 &lt;th&gt;Link&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;ChatGPT&lt;/td&gt;
 &lt;td&gt;OpenAI&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://chat.openai.com" target="_blank" rel="noopener"
 &gt;chat.openai.com&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude&lt;/td&gt;
 &lt;td&gt;Anthropic&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://claude.ai" target="_blank" rel="noopener"
 &gt;claude.ai&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini&lt;/td&gt;
 &lt;td&gt;Google&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://gemini.google.com" target="_blank" rel="noopener"
 &gt;gemini.google.com&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Perplexity&lt;/td&gt;
 &lt;td&gt;Perplexity AI&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://perplexity.ai" target="_blank" rel="noopener"
 &gt;perplexity.ai&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pi&lt;/td&gt;
 &lt;td&gt;Inflection AI&lt;/td&gt;
 &lt;td&gt;&lt;a class="link" href="https://pi.ai" target="_blank" rel="noopener"
 &gt;pi.ai&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="what-to-use-for-what"&gt;What to use for what
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt; — solid all-rounder. Good starting point for anything. GPT-4o handles code, writing, and general reasoning well. The memory and custom GPTs features are useful if you&amp;rsquo;re in the ecosystem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude&lt;/strong&gt; — noticeably better at longer documents and editing. Tends to produce cleaner prose and is less likely to pad answers. Good choice when writing quality matters or when working with large amounts of text. The extended thinking mode (on paid plans) is useful for multi-step reasoning problems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gemini&lt;/strong&gt; — largest context window of the group (1M tokens on the 1.5/2.0 Pro models). Good for dropping in entire codebases or large document sets. Also, the natural choice if you&amp;rsquo;re already working in Google Workspace (Docs, Drive integration).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Perplexity&lt;/strong&gt; — search-augmented: it retrieves and cites sources rather than relying solely on training data. Use it when you need something current, want to find specific information with references, or want to verify claims. Not the right tool for writing or code generation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pi&lt;/strong&gt; — conversational in style, more of a back-and-forth dialogue companion. Less useful for technical tasks; more useful for thinking out loud or explaining something to yourself.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="free-vs-paid"&gt;Free vs paid
&lt;/h2&gt;&lt;p&gt;All of them have a free tier that covers most casual use. The paid tiers unlock better models (GPT-4o vs GPT-3.5, Claude Sonnet/Opus vs Haiku, etc.) and higher usage limits. If you&amp;rsquo;re doing any serious work the free tier runs out quickly.&lt;/p&gt;
&lt;p&gt;For coding specifically, see &lt;a class="link" href="https://backend-engineering-strategy-tools.github.io/site/public-notes/dev-environment/ai-coding/" &gt;AI Coding Assistants&lt;/a&gt; — the browser interfaces are fine for quick questions but the CLI tools are more useful when actually working in a codebase.&lt;/p&gt;</description></item><item><title>AI Coding Assistants</title><link>https://backend-engineering-strategy-tools.github.io/site/public-notes/ai/ai-coding/</link><pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate><guid>https://backend-engineering-strategy-tools.github.io/site/public-notes/ai/ai-coding/</guid><description>&lt;p&gt;CLI tools and agents that integrate into your development workflow rather than just answering questions in a browser tab. The difference from chat tools is that these read your files, run commands, and make edits directly — they operate on the codebase, not alongside it.&lt;/p&gt;
&lt;p&gt;This is the move when we want the agents to start doing the work for us, talk is cheap action speaks for itself :)&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="claude-code"&gt;Claude Code
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://docs.anthropic.com/en/claude-code/getting-started" target="_blank" rel="noopener"
 &gt;docs.anthropic.com/claude-code&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Anthropic&amp;rsquo;s CLI agent. Works in the terminal, reads the project, edits files, runs commands, and iterates. The setup cost is real — there are things to configure (permissions, &lt;code&gt;CLAUDE.md&lt;/code&gt;, hooks), it has opinions about how things should work, and you are working within its harness rather than directing it freely. That said, once it is set up and calibrated to the project, the net effect is positive: it does the work, catches things you&amp;rsquo;d miss, and the compound value per session adds up quickly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notable&lt;/strong&gt;: Claude Code is meaningfully more out-of-the-box than the alternatives. The harness, workflow, and defaults are all provided — you adapt to them, but you don&amp;rsquo;t have to build them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cost&lt;/strong&gt;: Requires a paid Anthropic subscription (Claude Pro / Max, ~$20–$100/mo depending on tier). There is no meaningful free tier for coding use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Honest assessment&lt;/strong&gt;:
The harness is opinionated; it is worth it here — someone else is developing the tooling, you have to adapt and learn to use their tooling and their workflows. However &lt;em&gt;they&lt;/em&gt; are doing the work of building the tooling and designing some kind of workflow for using it. Not worth it if you only touch code occasionally — the subscription cost, and more importantly the need to learn and adapt to the tooling outpaces the benefit at low usage.&lt;/p&gt;
&lt;h3 id="configuration-files"&gt;Configuration files
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Scope&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Instructions applied to every project&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Project-specific instructions, conventions, preferences&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.claude/settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Permissions, tools, hooks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Project-level permissions and hooks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.claude/settings.local.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Local (gitignored)&lt;/td&gt;
 &lt;td&gt;Personal overrides, not shared&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.claude/commands/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Custom slash commands (skills)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.claude/commands/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Project-specific slash commands&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.claude/memory/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Persistent memory across sessions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="aider"&gt;Aider
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;aider.chat&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Open-source CLI coding assistant. Works with any model via API — OpenAI, Anthropic, Google AI Studio, OpenRouter, or local models. You run it from the terminal, it reads selected files, you chat with it and it commits changes. No project-level config files to maintain — you select files per session.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verdict&lt;/strong&gt;: Tried it — the interaction model didn&amp;rsquo;t land. Aider&amp;rsquo;s file selection flow and how it structures its edits felt like more overhead than it was worth. Good tool in concept, and the model flexibility is genuinely useful, but it didn&amp;rsquo;t stick.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="pi"&gt;Pi
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/earendil-works/pi" target="_blank" rel="noopener"
 &gt;github.com/earendil-works/pi&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Open-source CLI coding agent by Mario Zechner. Reads files, runs commands, makes edits — flexible on auth: works with pay-per-token API keys (Anthropic, OpenAI, Google) or existing subscriptions (Claude Pro/Max, ChatGPT Plus, GitHub Copilot).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;npm install -g @earendil-works/pi-coding-agent
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# then: export ANTHROPIC_API_KEY=... (or /login inside Pi)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pi
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Key commands&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Command&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/verbose&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show internal reasoning and tool calls — &lt;strong&gt;recommended, use this&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/model&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Switch models mid-session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/settings&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Adjust thinking level, theme, delivery mode&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/session&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show token usage for current session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/compact&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Manually compact context&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/tree&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Navigate session history, continue from any point&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/fork&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Branch a new session from a previous message&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;/resume&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Pick up a previous session&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="configuration-files-1"&gt;Configuration files
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;File&lt;/th&gt;
 &lt;th&gt;Scope&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.pi/agent/AGENTS.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Instructions applied to all projects (also reads &lt;code&gt;CLAUDE.md&lt;/code&gt;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;AGENTS.md&lt;/code&gt; / &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project + parents&lt;/td&gt;
 &lt;td&gt;Project instructions, loaded from current dir and up&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.pi/agent/settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Default model, theme, thinking level, compaction&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.pi/settings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Project overrides (merged with global)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.pi/agent/SYSTEM.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Replace the default system prompt entirely&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.pi/SYSTEM.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Project-level system prompt replacement&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;.pi/APPEND_SYSTEM.md&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Project&lt;/td&gt;
 &lt;td&gt;Append to the system prompt without replacing it&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.pi/agent/models.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Add custom providers and models&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.pi/agent/keybindings.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Global&lt;/td&gt;
 &lt;td&gt;Keyboard shortcut overrides&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Backends and context windows&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;A real upside of Pi&amp;rsquo;s model flexibility: use your existing Claude Pro/Max subscription as a backend via &lt;code&gt;/login&lt;/code&gt; (no extra API cost), then toggle to &lt;a class="link" href="https://ai.google.dev/gemini-api/docs/models" target="_blank" rel="noopener"
 &gt;Gemini 2.5 Flash&lt;/a&gt; when you need a bigger context window. Switch mid-session with &lt;code&gt;/model&lt;/code&gt;.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Backend&lt;/th&gt;
 &lt;th&gt;Context window&lt;/th&gt;
 &lt;th&gt;Notes&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Sonnet/Opus (Pro)&lt;/td&gt;
 &lt;td&gt;200K&lt;/td&gt;
 &lt;td&gt;1M available via &lt;code&gt;/extra-usage&lt;/code&gt; opt-in&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude Sonnet/Opus (Max/Enterprise)&lt;/td&gt;
 &lt;td&gt;1M&lt;/td&gt;
 &lt;td&gt;Automatic since March 2026&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Gemini 2.5 Flash&lt;/td&gt;
 &lt;td&gt;~1M (1,048,576)&lt;/td&gt;
 &lt;td&gt;Fast and cheap — good default for large context tasks&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Honest assessment&lt;/strong&gt;:
Genuinely interesting tool and the minimal harness is appealing in principle — but that minimalism is also the cost. There is no opinionated workflow handed to you. You end up building your own: install, auth, Docker isolation if you want it, project context files, model configuration. You are essentially assembling the harness yourself from first principles. It works, and the result is tailored, but the setup investment is real — noticeably more than Claude Code.&lt;/p&gt;
&lt;p&gt;Worth it for a focused project with a longer time horizon — somewhere you would live in it long enough to amortise the setup. Less obviously worth it for short or varied work.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="google-ai-studio"&gt;Google AI Studio
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://aistudio.google.com" target="_blank" rel="noopener"
 &gt;aistudio.google.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Not a coding assistant itself — it&amp;rsquo;s the API/playground interface for Google&amp;rsquo;s Gemini model family. Useful as a backend for Aider, Pi, or any OpenAI-compatible client, or for direct experimentation with models.&lt;/p&gt;
&lt;p&gt;Prepaid access (credit-based) makes it accessible without a monthly commitment. Flash 2.5 is the practical model for coding use: fast, cheap, capable enough for most tasks. Pro 2.5 is noticeably better but costs more per token.&lt;/p&gt;
&lt;p&gt;Free tier (Google AI Studio quota) and OpenRouter free tier exist but are not reliable enough for actual use — rate limits, model quality variation, and timeouts make the free path frustrating.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="comparison"&gt;Comparison
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Tool&lt;/th&gt;
 &lt;th&gt;Model&lt;/th&gt;
 &lt;th&gt;Cost model&lt;/th&gt;
 &lt;th&gt;Setup effort&lt;/th&gt;
 &lt;th&gt;Verdict&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://docs.anthropic.com/en/claude-code/getting-started" target="_blank" rel="noopener"
 &gt;Claude Code&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Claude Sonnet/Opus&lt;/td&gt;
 &lt;td&gt;Subscription&lt;/td&gt;
 &lt;td&gt;Medium — harness provided&lt;/td&gt;
 &lt;td&gt;Positive net effect&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://aider.chat" target="_blank" rel="noopener"
 &gt;Aider&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Any via API&lt;/td&gt;
 &lt;td&gt;Pay per use&lt;/td&gt;
 &lt;td&gt;Low — no project config&lt;/td&gt;
 &lt;td&gt;Didn&amp;rsquo;t stick&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;a class="link" href="https://github.com/earendil-works/pi" target="_blank" rel="noopener"
 &gt;Pi&lt;/a&gt;&lt;/td&gt;
 &lt;td&gt;Any via API or sub&lt;/td&gt;
 &lt;td&gt;Flexible&lt;/td&gt;
 &lt;td&gt;High — DIY harness&lt;/td&gt;
 &lt;td&gt;Good, setup cost real&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item></channel></rss>