<?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: sonpiaz</title>
    <description>The latest articles on DEV Community by sonpiaz (@sonpiaz_40).</description>
    <link>https://dev.to/sonpiaz_40</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%2F3825696%2F49cff1f0-7367-4106-8728-ae1781f038fd.png</url>
      <title>DEV Community: sonpiaz</title>
      <link>https://dev.to/sonpiaz_40</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sonpiaz_40"/>
    <language>en</language>
    <item>
      <title>Free AI models just got really good. Here's how to use 23 of them with one API key.</title>
      <dc:creator>sonpiaz</dc:creator>
      <pubDate>Sun, 05 Apr 2026 07:16:06 +0000</pubDate>
      <link>https://dev.to/sonpiaz_40/free-ai-models-just-got-really-good-heres-how-to-use-23-of-them-with-one-api-key-3oe3</link>
      <guid>https://dev.to/sonpiaz_40/free-ai-models-just-got-really-good-heres-how-to-use-23-of-them-with-one-api-key-3oe3</guid>
      <description>&lt;p&gt;This week three free models dropped that compete with paid ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen 3.6 Plus&lt;/strong&gt; scores 61.6 on Terminal-Bench. Claude 4.5 Opus scores 59.3. Qwen is free. 1M context window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 31B&lt;/strong&gt; is Google's first Apache 2.0 model. It understands images and text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPT-OSS 120B&lt;/strong&gt; is OpenAI's first open source model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A year ago you'd pay $20-100/month for this quality. Now it's free.&lt;/p&gt;

&lt;p&gt;The catch: each model needs its own account. Want to try all three? That's three signups, three API keys, three different ways to call them.&lt;/p&gt;

&lt;h2&gt;
  
  
  One key for everything
&lt;/h2&gt;

&lt;p&gt;I found &lt;a href="https://kymaapi.com" rel="noopener noreferrer"&gt;Kyma API&lt;/a&gt;. You sign up once, get one key, and use it for 23 models.&lt;/p&gt;

&lt;p&gt;Here's what the code looks like:&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="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://kymaapi.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ky-your-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Use Qwen 3.6 Plus
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;qwen-3.6-plus&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Review this code&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Want Gemma 4 instead? Change one word.
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemma-4-31b&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s in this image?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your code works with OpenAI, it works with this. Same format. No new library.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which model for what
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want to do&lt;/th&gt;
&lt;th&gt;Use this&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Write code&lt;/td&gt;
&lt;td&gt;Qwen 3 32B or Kimi K2&lt;/td&gt;
&lt;td&gt;Top coding benchmarks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Analyze a long document&lt;/td&gt;
&lt;td&gt;Gemini 2.5 Flash&lt;/td&gt;
&lt;td&gt;1M token context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;General questions&lt;/td&gt;
&lt;td&gt;Llama 3.3 70B&lt;/td&gt;
&lt;td&gt;Best all-rounder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get the smartest answer&lt;/td&gt;
&lt;td&gt;Qwen 3 235B&lt;/td&gt;
&lt;td&gt;Largest free model available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get the fastest answer&lt;/td&gt;
&lt;td&gt;Llama 3.1 8B&lt;/td&gt;
&lt;td&gt;About 100ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Understand images&lt;/td&gt;
&lt;td&gt;Gemma 4 31B&lt;/td&gt;
&lt;td&gt;Multimodal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Try the latest trending&lt;/td&gt;
&lt;td&gt;Qwen 3.6 Plus&lt;/td&gt;
&lt;td&gt;Just released this week&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How it works in practice
&lt;/h2&gt;

&lt;p&gt;I signed up. Took about 30 seconds. Got a key starting with &lt;code&gt;ky-&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Tested a few models. Switching between them is changing one word. Response times were fast, around 100-300ms for most models.&lt;/p&gt;

&lt;p&gt;The free tier has rate limits but it's enough for side projects and testing. If you need more there's a pay-as-you-go option priced close to cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://kymaapi.com" rel="noopener noreferrer"&gt;kymaapi.com&lt;/a&gt; to get a key&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.kymaapi.com" rel="noopener noreferrer"&gt;docs.kymaapi.com&lt;/a&gt; for the full docs&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/sonpiaz/kyma-api" rel="noopener noreferrer"&gt;github.com/sonpiaz/kyma-api&lt;/a&gt; for the source&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No credit card needed.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Cover image:&lt;/strong&gt; landing-hero.png&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>hidrix-tools: 18 MCP tools that give AI agents web search, social media scraping, and content analysis</title>
      <dc:creator>sonpiaz</dc:creator>
      <pubDate>Sat, 04 Apr 2026 20:48:55 +0000</pubDate>
      <link>https://dev.to/sonpiaz_40/hidrix-tools-18-mcp-tools-that-give-ai-agents-web-search-social-media-scraping-and-content-2ikp</link>
      <guid>https://dev.to/sonpiaz_40/hidrix-tools-18-mcp-tools-that-give-ai-agents-web-search-social-media-scraping-and-content-2ikp</guid>
      <description>&lt;p&gt;I open-sourced &lt;a href="https://github.com/sonpiaz/hidrix-tools" rel="noopener noreferrer"&gt;hidrix-tools&lt;/a&gt; yesterday — an MCP server that gives AI coding agents the ability to search the web, scrape social media, and analyze content.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;If you use Claude Code, Cursor, pi, or any CLI agent — they can read files and write code. But ask them to search X/Twitter, pull Reddit threads, or scrape a Facebook group? They can't.&lt;/p&gt;

&lt;p&gt;I kept copy-pasting research into conversations. It was slow and broke the flow.&lt;/p&gt;

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

&lt;p&gt;An MCP tool server with 18 tools. Plug it into any agent that supports MCP — no vendor lock-in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your AI Agent                    hidrix-tools                     Internet
┌──────────┐     MCP protocol    ┌──────────────┐                ┌─────────┐
│ Claude   │ ◄─────────────────► │ web_search   │ ◄────────────► │ Brave   │
│ Cursor   │                     │ x_search     │                │ X/Twitter│
│ pi       │                     │ reddit_search│                │ Reddit  │
│ Codex    │                     │ facebook_    │                │ Facebook│
│ ...      │                     │   scraper    │                │ YouTube │
└──────────┘                     └──────────────┘                └─────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Tools included
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Search:&lt;/strong&gt; web_search (Brave), x_search, x_thread_reader, x_user_posts, reddit_search, reddit_thread_reader, reddit_subreddit_top, youtube_search, tiktok_search&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scrape:&lt;/strong&gt; web_fetch (URL → markdown), facebook_scraper (groups, pages, keyword search, Meta Ad Library)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LinkedIn:&lt;/strong&gt; linkedin_search, linkedin_profile (no login needed)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analyze:&lt;/strong&gt; content_scorer (engagement ranking + time-decay), content_analyzer (topic clusters, patterns, trends)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Storage:&lt;/strong&gt; SQLite — dedup, run history, query saved posts&lt;/p&gt;

&lt;h2&gt;
  
  
  What I shipped in the last 24 hours
&lt;/h2&gt;

&lt;p&gt;11 commits since the initial release:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LinkedIn tools — search posts and profiles without login&lt;/li&gt;
&lt;li&gt;Facebook scraper pipeline — groups, pages, search, Meta Ads&lt;/li&gt;
&lt;li&gt;YouTube transcripts + channel tools&lt;/li&gt;
&lt;li&gt;SQLite storage with dedup&lt;/li&gt;
&lt;li&gt;Follow system — track people/keywords across platforms&lt;/li&gt;
&lt;li&gt;Knowledge compiler — auto-builds an Obsidian wiki from collected data&lt;/li&gt;
&lt;li&gt;Business intelligence — competitor tracking, market signals&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The feature I use most: Knowledge compiler
&lt;/h2&gt;

&lt;p&gt;My agent follows 10+ people on X. Every day it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collects their new posts&lt;/li&gt;
&lt;li&gt;Stores them in SQLite (dedup)&lt;/li&gt;
&lt;li&gt;Extracts key insights&lt;/li&gt;
&lt;li&gt;Compiles wiki articles in my Obsidian vault&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I wake up to an updated knowledge base every morning. Zero manual work.&lt;/p&gt;

&lt;p&gt;Not a demo — just a cron job + MCP tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install (3 commands)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/sonpiaz/hidrix-tools.git ~/.hidrix-tools
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/.hidrix-tools &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; bun &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;span class="c"&gt;# Add your API keys to .env&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Connect to Claude Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hidrix-tools"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~/.hidrix-tools/server.ts"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works with Claude Code, Cursor, OpenClaw, pi, Codex, Hermes — any MCP client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding your own tool
&lt;/h2&gt;

&lt;p&gt;Tools are auto-discovered. Copy the template, edit, restart:&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="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; tools/_template tools/my-tool
&lt;span class="c"&gt;# Edit tools/my-tool/index.ts&lt;/span&gt;
bun run server.ts
&lt;span class="c"&gt;# [hidrix-tools] ✓ my_tool&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/sonpiaz/hidrix-tools" rel="noopener noreferrer"&gt;github.com/sonpiaz/hidrix-tools&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributing:&lt;/strong&gt; PRs welcome — see CONTRIBUTING.md&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building with AI agents and tired of copy-pasting research, give it a try. Feedback welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built 50 AI skills for affiliate marketing — here is the social intelligence layer</title>
      <dc:creator>sonpiaz</dc:creator>
      <pubDate>Fri, 03 Apr 2026 21:27:15 +0000</pubDate>
      <link>https://dev.to/sonpiaz_40/i-built-50-ai-skills-for-affiliate-marketing-here-is-the-social-intelligence-layer-4393</link>
      <guid>https://dev.to/sonpiaz_40/i-built-50-ai-skills-for-affiliate-marketing-here-is-the-social-intelligence-layer-4393</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Most AI-written affiliate content is generic. The AI picks a format by default, writes from training data, and hopes it converts. No engagement signals. No real sources. No data on what's actually working.&lt;/p&gt;

&lt;p&gt;I wanted to fix that.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/Affitor/affiliate-skills" rel="noopener noreferrer"&gt;affiliate-skills&lt;/a&gt; is a collection of 50 SKILL.md files — each one tells any AI exactly how to execute an affiliate marketing task. Input/output schemas, step-by-step workflows, error handling, and chaining metadata.&lt;/p&gt;

&lt;p&gt;The v1.2 update adds a &lt;strong&gt;social intelligence layer&lt;/strong&gt;: 5 new skills that bring real engagement data into the content creation pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 5 New Skills
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. trending-content-scout (S1 Research)
&lt;/h3&gt;

&lt;p&gt;Scans YouTube, TikTok, X, and Reddit for top-performing content by engagement score.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it returns:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Top 20 content sorted by engagement&lt;/li&gt;
&lt;li&gt;Winning formats (comparison: 45%, tutorial: 25%, review: 20%)&lt;/li&gt;
&lt;li&gt;Best hooks ("I replaced my $5K video team" → engagement: 42.3)&lt;/li&gt;
&lt;li&gt;Content gaps (nobody comparing HeyGen vs Synthesia on TikTok)&lt;/li&gt;
&lt;li&gt;Engagement benchmark (median views, top 10% threshold)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Engagement Score Formula:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;engagement_score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;likes&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;comments&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;shares&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nf"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;views&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shares weighted 5x (strongest viral signal). Comments 3x (high-intent). Likes 2x (low-effort positive).&lt;/p&gt;

&lt;h3&gt;
  
  
  2. content-angle-ranker (S1 Research)
&lt;/h3&gt;

&lt;p&gt;Generates 8-12 content angle candidates and scores each on 4 dimensions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;angle_score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;platform_fit&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mf"&gt;0.25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;competition_level&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mf"&gt;0.30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; 
              &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;engagement_prediction&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mf"&gt;0.30&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;creator_fit&lt;/span&gt; &lt;span class="err"&gt;×&lt;/span&gt; &lt;span class="mf"&gt;0.15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output: ranked list with a clear #1 recommendation and ready-to-use parameters for the next skill.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. traffic-analyzer (S1 Research)
&lt;/h3&gt;

&lt;p&gt;Evaluates any website's traffic health before you commit to promoting their program. Calculates a Traffic Health Score 0-100, compares multiple domains side-by-side.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. content-research-brief (S2 Content)
&lt;/h3&gt;

&lt;p&gt;Collects 5-10 real source articles, auto-tags them (AI, Funding, SaaS, Tools, Trends), extracts key stats and quotes, and generates 3+ unique content angles — each backed by a different primary source.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. infographic-generator (S2 Content)
&lt;/h3&gt;

&lt;p&gt;Generates complete infographic specs: layout, data points, copy, color scheme. Platform-optimized (LinkedIn 1080×1350, IG square, Twitter landscape). Output as structured spec or self-contained HTML/CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Flywheel
&lt;/h2&gt;

&lt;p&gt;Every skill knows what comes next. Data flows forward through the funnel and back through analytics:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;S1 RESEARCH → S2 CONTENT → S3 BLOG &amp;amp; SEO → S4 OFFERS &amp;amp; LANDING
     ↑                                              ↓
     │                                        S5 DISTRIBUTION
     │                                              ↓
     └──────── S6 ANALYTICS ◀────────────────────────┘
                    ↓
              S7 AUTOMATION → SCALE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Closed loop.&lt;/strong&gt; S6 feeds back to S1. Your performance data refines the next scout run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data-driven.&lt;/strong&gt; By the time you write, you already know what format, hook, and platform to use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research-backed.&lt;/strong&gt; Content skills don't write from thin air. &lt;code&gt;content-research-brief&lt;/code&gt; collects real articles first.&lt;/p&gt;

&lt;h2&gt;
  
  
  API-Optional Design
&lt;/h2&gt;

&lt;p&gt;All skills work with just &lt;code&gt;web_search&lt;/code&gt; and &lt;code&gt;web_fetch&lt;/code&gt;. No API keys required.&lt;/p&gt;

&lt;p&gt;But if you have APIs, the data gets better:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;social_data_config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;youtube&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;youtube-data-api"&lt;/span&gt;
    &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AIzaSy..."&lt;/span&gt;
  &lt;span class="na"&gt;tiktok&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rapidapi"&lt;/span&gt;
    &lt;span class="na"&gt;api_key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_KEY"&lt;/span&gt;
    &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tiktok-api23.p.rapidapi.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Supported: YouTube Data API v3, RapidAPI, SerpAPI, Apify, or any custom API with field mapping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback Protocol
&lt;/h2&gt;

&lt;p&gt;When a skill underperforms, it auto-generates a &lt;code&gt;skill_feedback&lt;/code&gt; block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;skill_feedback&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;skill&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;trending-content-scout"&lt;/span&gt;
  &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;partial_failure"&lt;/span&gt;
  &lt;span class="na"&gt;issue_type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;data_quality"&lt;/span&gt;
  &lt;span class="na"&gt;step_failed&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Step&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;2"&lt;/span&gt;
  &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;TikTok&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;returned&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;0&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;results"&lt;/span&gt;
  &lt;span class="na"&gt;severity&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;low"&lt;/span&gt;
  &lt;span class="na"&gt;suggestion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Add&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;alternative&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;search&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;queries"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;9 auto-detection triggers. Issue taxonomy: &lt;code&gt;data_quality&lt;/code&gt;, &lt;code&gt;hallucination&lt;/code&gt;, &lt;code&gt;chain_break&lt;/code&gt;, &lt;code&gt;schema_mismatch&lt;/code&gt;, etc.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Any AI, no install:&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;Paste into Claude, ChatGPT, or Gemini:

"Scout trending content about AI video tools on YouTube and TikTok. 
Show me top content by engagement, winning formats, and content gaps."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Claude Code / Pi:&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/Affitor/affiliate-skills.git ~/.claude/skills/affiliate-skills
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/.claude/skills/affiliate-skills &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; ./setup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Full repo:&lt;/strong&gt; &lt;a href="https://github.com/Affitor/affiliate-skills" rel="noopener noreferrer"&gt;github.com/Affitor/affiliate-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;50 skills. 8 stages. MIT license. Works with any AI.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What does your content research workflow look like? Would love to hear how others approach data-driven content creation.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>marketing</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I Built 45 AI Agent Skills for Affiliate Marketing — Here's How They Work</title>
      <dc:creator>sonpiaz</dc:creator>
      <pubDate>Mon, 16 Mar 2026 04:56:22 +0000</pubDate>
      <link>https://dev.to/sonpiaz_40/i-open-sourced-32-ai-skills-that-take-you-from-zero-to-first-affiliate-commission-17kd</link>
      <guid>https://dev.to/sonpiaz_40/i-open-sourced-32-ai-skills-that-take-you-from-zero-to-first-affiliate-commission-17kd</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;AI is great at writing copy. But ask it to "find the best affiliate program for AI video tools" and you get generic, outdated advice from its training data.&lt;/p&gt;

&lt;p&gt;What if your AI could query a real-time database, compare commission rates, calculate potential earnings, then write optimized content — all in one conversation?&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/Affitor/affiliate-skills" rel="noopener noreferrer"&gt;affiliate-skills&lt;/a&gt; — 45 open-source AI agent skills that cover the entire affiliate marketing funnel:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;Skills&lt;/th&gt;
&lt;th&gt;What they do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;S1 Research&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Find and evaluate affiliate programs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S2 Content&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Write viral social media posts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S3 Blog &amp;amp; SEO&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Build optimized blog content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S4 Landing Pages&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Create high-converting HTML pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S5 Distribution&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Deploy and schedule content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S6 Analytics&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Track performance and optimize&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S7 Automation&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Scale what works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;S8 Meta&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Plan, audit, improve the system&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The Flywheel
&lt;/h3&gt;

&lt;p&gt;The key insight: skills chain together. S6 Analytics feeds data back to S1 Research, creating a closed optimization loop. Each skill has typed input/output schemas for agent interop.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;Each skill is a &lt;code&gt;SKILL.md&lt;/code&gt; file following the &lt;a href="https://agentskills.io" rel="noopener noreferrer"&gt;agentskills.io&lt;/a&gt; open standard. The AI reads the file and gains structured knowledge about a specific workflow.&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;# Install (Claude Code)&lt;/span&gt;
npx skills add Affitor/affiliate-skills

&lt;span class="c"&gt;# Or paste the bootstrap prompt into any AI&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Try It
&lt;/h3&gt;

&lt;p&gt;Paste this into any AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Search the Affitor affiliate directory for AI video tools.
Use this API: GET https://list.affitor.com/api/v1/programs?q=AI+video&amp;amp;sort=top&amp;amp;limit=5
Show me the results in a table with: Name, Commission, Cookie Duration, Stars.
Then recommend the best one and explain why.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standard:&lt;/strong&gt; agentskills.io (Anthropic, Linux Foundation AAIF)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatibility:&lt;/strong&gt; Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data source:&lt;/strong&gt; list.affitor.com REST API&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; MIT&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Affitor/affiliate-skills" rel="noopener noreferrer"&gt;https://github.com/Affitor/affiliate-skills&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Install: &lt;code&gt;npx skills add Affitor/affiliate-skills&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Directory: &lt;a href="https://list.affitor.com" rel="noopener noreferrer"&gt;https://list.affitor.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;What skills would you add? I'm looking for contributors to expand the collection.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>opensource</category>
      <category>affiliate</category>
    </item>
    <item>
      <title>How I Built a Game Bot That Uses LLM Vision for $0.01/Hour (Not $1/Hour)</title>
      <dc:creator>sonpiaz</dc:creator>
      <pubDate>Sun, 15 Mar 2026 17:57:34 +0000</pubDate>
      <link>https://dev.to/sonpiaz_40/how-i-built-a-game-bot-that-uses-llm-vision-for-001hour-not-1hour-3j6p</link>
      <guid>https://dev.to/sonpiaz_40/how-i-built-a-game-bot-that-uses-llm-vision-for-001hour-not-1hour-3j6p</guid>
      <description>&lt;p&gt;Most tutorials about using LLMs for game automation show you how to send screenshots to GPT-4 or Claude every few seconds. It works — but at $1+/hour, you'll burn through hundreds of dollars a month.&lt;/p&gt;

&lt;p&gt;I built a framework that gets the same results for &lt;strong&gt;$0.01/hour&lt;/strong&gt;. Here's how.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Expensive Way
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Every 3 seconds:
  1. Take screenshot
  2. Send to Claude: "What should I do?"
  3. Parse response
  4. Execute action
  5. Repeat

Cost: ~1,200 API calls/hour × $0.001 = $1.20/hour
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how most LLM game agents work. It's simple, but the cost adds up fast — especially if you want to run 24/7.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cheap Way: 5-Layer Hybrid Architecture
&lt;/h2&gt;

&lt;p&gt;The insight is that &lt;strong&gt;98% of game decisions don't need AI&lt;/strong&gt;. You can handle them locally, for free:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer 5: STRATEGIC AI ──── LLM reviews strategy every 30 min ($0.004)
Layer 4: WORKFLOWS ─────── Scripted tap sequences (FREE)
Layer 3: WORLD MODEL ───── Tracks timers and predicts events (FREE)
Layer 2: STATE MACHINE ─── Detects screens and handles popups (FREE)
Layer 1: PERCEPTION ────── Pixel analysis + OCR (FREE)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layer 1: Perception (FREE, &amp;lt;100ms)
&lt;/h3&gt;

&lt;p&gt;Instead of asking an AI "what screen is this?", I check pixel colors at known positions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bottom navigation bar is dark with colored icons? → Home screen&lt;/li&gt;
&lt;li&gt;Dark overlay with bright center? → Popup&lt;/li&gt;
&lt;li&gt;Bright panel in lower half? → Building menu&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This takes &lt;strong&gt;30-50ms&lt;/strong&gt; vs 15-20 seconds for full OCR.&lt;/p&gt;

&lt;p&gt;For the 20% of cases where pixels aren't enough, PaddleOCR runs locally to read text. Still free — no API calls.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 2: State Machine (FREE)
&lt;/h3&gt;

&lt;p&gt;A simple FSM tracks which screen the bot is on. Popups are managed with a stack — when one appears, the previous state is pushed. When dismissed, it pops back.&lt;/p&gt;

&lt;p&gt;This handles the #1 frustration with game bots: random purchase popups interrupting your workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 3: World Model (FREE)
&lt;/h3&gt;

&lt;p&gt;Instead of re-discovering game state every cycle, the bot &lt;strong&gt;remembers&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which buildings are upgrading and when they finish&lt;/li&gt;
&lt;li&gt;Whether research is active&lt;/li&gt;
&lt;li&gt;Which troop training queues are idle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It predicts timer completions and acts at exactly the right moment — no polling.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 4: Workflows (FREE)
&lt;/h3&gt;

&lt;p&gt;Known tasks are scripted as deterministic tap sequences:&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;upgrade_building&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ensure_home&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;           &lt;span class="c1"&gt;# Navigate to home screen
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find_and_tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;      &lt;span class="c1"&gt;# Template match → cached pos → spiral search
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;720&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2100&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;          &lt;span class="c1"&gt;# Tap upgrade button
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;tap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;720&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;          &lt;span class="c1"&gt;# Confirm
&lt;/span&gt;    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;world&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;observe_upgrade_started&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ensure_home&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each step verifies the screen state before proceeding. If something unexpected happens, it falls back to Layer 5.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 5: Strategic AI ($0.004 every 30 min)
&lt;/h3&gt;

&lt;p&gt;Claude Sonnet reviews a screenshot and answers: "What's the most important thing to do right now?"&lt;/p&gt;

&lt;p&gt;This catches things the scripted workflows can't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Builders are idle but the bot didn't notice&lt;/li&gt;
&lt;li&gt;A new event started that changes priorities&lt;/li&gt;
&lt;li&gt;The current strategy needs adjustment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cost: ~48 calls/day × $0.004 = &lt;strong&gt;$0.19/day&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-Improving: The Bot Gets Better Over Time
&lt;/h2&gt;

&lt;p&gt;Two patterns borrowed from AI research:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Template Capture (Voyager-inspired):&lt;/strong&gt; When the bot finds a building, it captures a screenshot snippet as a template. Next time, OpenCV template matching finds it instantly instead of searching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-Reflection (CRADLE/Reflexion-inspired):&lt;/strong&gt; Every success and failure is logged. Before retrying a task, the bot checks past failures to avoid repeating mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Framework
&lt;/h2&gt;

&lt;p&gt;I packaged this as an open-source framework where each game is a self-contained folder:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4x-game-agent/
├── agent/              # Core utilities (ADB, OCR, template matching, LLM)
├── games/
│   ├── kingshot/       # Reference implementation (fully working)
│   └── _template/      # Copy to add your game
└── docs/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The core is intentionally thin — just utilities. All game logic (screen states, workflows, coordinates, strategies) lives in the game folder. Wrong approach? Delete the folder and start over.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/sonpiaz/4x-game-agent.git
&lt;span class="nb"&gt;cd &lt;/span&gt;4x-game-agent
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;".[all]"&lt;/span&gt;

&lt;span class="c"&gt;# Test with Kingshot (or copy _template for your game)&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;games/kingshot
python main.py &lt;span class="nt"&gt;--test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Contributing
&lt;/h2&gt;

&lt;p&gt;The most valuable contribution is adding a new game. The framework handles the hard parts (ADB, OCR, template matching, LLM integration). You just need to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Map UI coordinates for your game&lt;/li&gt;
&lt;li&gt;Write screen detection rules&lt;/li&gt;
&lt;li&gt;Script the tap workflows&lt;/li&gt;
&lt;li&gt;Define game knowledge (upgrade prerequisites, etc.)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/sonpiaz/4x-game-agent" rel="noopener noreferrer"&gt;github.com/sonpiaz/4x-game-agent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Games we're looking for: Rise of Kingdoms, Evony, Lords Mobile, Call of Dragons, Whiteout Survival.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have questions? Open an issue on GitHub or drop a comment below.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>python</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
