<?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>Forem: Will Schenk</title>
    <description>The latest articles on Forem by Will Schenk (@wschenk).</description>
    <link>https://forem.com/wschenk</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%2F32358%2Ffe3ff598-b3b3-4197-b273-0abb0e5d030c.jpg</url>
      <title>Forem: Will Schenk</title>
      <link>https://forem.com/wschenk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wschenk"/>
    <language>en</language>
    <item>
      <title>Build Your Own AI Coding Assistant in a Weekend (Without Writing Code)</title>
      <dc:creator>Will Schenk</dc:creator>
      <pubDate>Tue, 30 Dec 2025 19:08:37 +0000</pubDate>
      <link>https://forem.com/wschenk/build-your-own-ai-coding-assistant-in-a-weekend-without-writing-code-19f</link>
      <guid>https://forem.com/wschenk/build-your-own-ai-coding-assistant-in-a-weekend-without-writing-code-19f</guid>
      <description>&lt;p&gt;Ever wonder exactly how "vibe coding" works? How tools like Cursor and Claude Code seem to understand your codebase and make edits on your behalf?&lt;/p&gt;

&lt;p&gt;I just published a free tutorial that teaches you to build a fully functional AI coding assistant—and here's the twist: &lt;strong&gt;you won't write a single line of code yourself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The agent builds itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You'll Build
&lt;/h2&gt;

&lt;p&gt;By the end of this tutorial, you'll have a working AI coding assistant that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate and understand your codebase&lt;/li&gt;
&lt;li&gt;Edit files with precision using structured diff tools&lt;/li&gt;
&lt;li&gt;Support custom skills you define&lt;/li&gt;
&lt;li&gt;Generate images and videos&lt;/li&gt;
&lt;li&gt;Search the web for documentation&lt;/li&gt;
&lt;li&gt;Spawn specialized sub-agents for focused tasks&lt;/li&gt;
&lt;li&gt;Track API costs so you don't blow your budget&lt;/li&gt;
&lt;li&gt;Log sessions for debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More importantly, you'll understand &lt;em&gt;why&lt;/em&gt; each piece exists and &lt;em&gt;how&lt;/em&gt; they fit together.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Made This
&lt;/h2&gt;

&lt;p&gt;There's a lot of fear about how AI will change intellectual work. Most arguments I see are born from fear and ignorance about what these tools can actually do.&lt;/p&gt;

&lt;p&gt;So I made a tutorial where anyone can get hands-on experience building something &lt;strong&gt;smart enough to build itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You don't need to be an experienced software engineer. I give you the prompts—you just need a terminal and an API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core Insight: It's Just a Loop
&lt;/h2&gt;

&lt;p&gt;Every AI coding assistant follows the same pattern:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. User enters input
2. Send to the LLM
3. LLM returns tokens
   3a. Includes tool call? Execute it, go back to #2
4. Show result to user
5. Go to step 1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. The "AI" part is the LLM. Everything else is plumbing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Harness Model
&lt;/h2&gt;

&lt;p&gt;What we're building is called &lt;strong&gt;a harness&lt;/strong&gt;—three layers working together:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;What It Is&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;strong&gt;Model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The LLM (Claude, GPT, Gemini)&lt;/td&gt;
&lt;td&gt;The "brain"—understands intent, generates responses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tools&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Functions the model can invoke&lt;/td&gt;
&lt;td&gt;The "hands"—read files, run commands, search the web&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prompts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Instructions shaping behavior&lt;/td&gt;
&lt;td&gt;Clear directions on what you want&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The model is powerful but blind—it can't see your filesystem or run code. Tools give it capabilities. Prompts tell it how to use them wisely.&lt;/p&gt;

&lt;p&gt;Swap the model, and the same harness behaves differently. Change the prompts, and behavior changes. Add tools, and new capabilities emerge.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes a Good Agent?
&lt;/h2&gt;

&lt;p&gt;The model. 99% the model.&lt;/p&gt;

&lt;p&gt;But the differences come from the harness:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Good context&lt;/strong&gt; — Making sure it understands your problem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Good tools&lt;/strong&gt; — Safe, predictable, well-described&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Good prompts&lt;/strong&gt; — Clear instructions that guide without over-constraining&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Good observability&lt;/strong&gt; — Logging and cost tracking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Good architecture&lt;/strong&gt; — Context management, subagents, extensibility&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Tutorial Structure
&lt;/h2&gt;

&lt;p&gt;11 progressive steps plus an epilogue:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Bootstrap&lt;/strong&gt; — Start with a 50-line script that captures the core agent loop&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Operations&lt;/strong&gt; — Add the ability to read and write files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Diff Tools&lt;/strong&gt; — Precise editing with structured replacements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills System&lt;/strong&gt; — User-defined extensions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code Quality&lt;/strong&gt; — Self-monitoring and linting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Image Generation&lt;/strong&gt; — Multi-modal capabilities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Generation&lt;/strong&gt; — Because why not&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Search&lt;/strong&gt; — Documentation and solutions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subagents&lt;/strong&gt; — Spawning specialized workers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Tracking&lt;/strong&gt; — Don't blow your budget&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session Logging&lt;/strong&gt; — Debugging and improvement&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each step builds on the last. You paste prompts, the agent writes code, you watch it work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Concepts You'll Grok
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tool Calling&lt;/strong&gt; — Modern LLMs don't just output text. They output structured requests like "call &lt;code&gt;read_file&lt;/code&gt; with path &lt;code&gt;/src/index.ts&lt;/code&gt;". Your code executes that function and sends the result back. The model never actually runs anything—it just asks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context Window&lt;/strong&gt; — The LLM's working memory. Every message, every tool result, every instruction competes for space in a fixed-size window (typically 128K-200K tokens). Managing context is the central challenge of agent design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Streaming&lt;/strong&gt; — You see AI assistants "typing"—that's not theater. It's tokens generating in real-time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You'll Understand After
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Agents are loops. The core pattern is simple.&lt;/li&gt;
&lt;li&gt;Tools are the interface. Good tool design is the difference between helpful and dangerous.&lt;/li&gt;
&lt;li&gt;Context is the constraint. Everything traces back to managing finite context.&lt;/li&gt;
&lt;li&gt;Observability isn't optional. If you can't see what happened, you can't fix it.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A terminal (comes free with your computer)&lt;/li&gt;
&lt;li&gt;An OpenRouter API key&lt;/li&gt;
&lt;li&gt;Works best with Gemini 3 or Opus 4.5&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;The full tutorial is here: &lt;strong&gt;&lt;a href="https://thefocus.ai/reports/coding-agent/" rel="noopener noreferrer"&gt;Build Your Own Coding Agent&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's free. No signup required.&lt;/p&gt;

&lt;p&gt;If you've been curious about how these tools work—or skeptical about whether AI can really write code—spend a weekend on this. You'll come away with concrete understanding instead of abstract opinions.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm Will Schenk, and I run &lt;a href="https://thefocus.ai" rel="noopener noreferrer"&gt;Focus.AI&lt;/a&gt; where we help companies build AI systems. This tutorial came from a weekend project that turned into something worth sharing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
