<?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: AlcubiX</title>
    <description>The latest articles on DEV Community by AlcubiX (@alcubix).</description>
    <link>https://dev.to/alcubix</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4237435%2F3f32bb97-0acf-4dfc-9818-5a01856c62d7.png</url>
      <title>DEV Community: AlcubiX</title>
      <link>https://dev.to/alcubix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alcubix"/>
    <language>en</language>
    <item>
      <title>How we taught an AI to reply to YouTube comments in the creator's own voice</title>
      <dc:creator>AlcubiX</dc:creator>
      <pubDate>Tue, 10 Nov 2026 16:03:29 +0000</pubDate>
      <link>https://dev.to/alcubix/how-we-taught-an-ai-to-reply-to-youtube-comments-in-the-creators-own-voice-5264</link>
      <guid>https://dev.to/alcubix/how-we-taught-an-ai-to-reply-to-youtube-comments-in-the-creators-own-voice-5264</guid>
      <description>&lt;p&gt;Comments are the most honest product research a creator gets. Viewers tell you what confused them, what they want next, who is pretending to be you, and who is about to unsubscribe.&lt;/p&gt;

&lt;p&gt;Most creators can't read them all. The ones who try usually end up pasting the same "Thanks for watching 🙏" a hundred times. Generic AI replies are even worse, because viewers can smell them instantly.&lt;/p&gt;

&lt;p&gt;So we built &lt;strong&gt;&lt;a href="https://github.com/AlcubiX/replydna" rel="noopener noreferrer"&gt;ReplyDNA&lt;/a&gt;&lt;/strong&gt;, an open-source (MIT) comment assistant that runs inside Claude Code. This post covers the three design decisions that mattered most:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Voice before replies:&lt;/strong&gt; measure how the creator actually talks before writing anything.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Language mirror:&lt;/strong&gt; answer every viewer in their own language &lt;em&gt;and&lt;/em&gt; script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safety in code, not prompts:&lt;/strong&gt; the dangerous paths are blocked by validators and CI, not by asking the model nicely.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dvad36h3odo98or8e23.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6dvad36h3odo98or8e23.gif" alt="The live demo report: pick a calm or witty reply, approve it, filter by language" width="560" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Voice DNA: measure first, write later
&lt;/h2&gt;

&lt;p&gt;A reply sounds like you when it uses &lt;em&gt;your&lt;/em&gt; habits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how you address viewers ("you", "aap", "tum", "usted"…);&lt;/li&gt;
&lt;li&gt;the phrases you repeat;&lt;/li&gt;
&lt;li&gt;how you open and close.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So ReplyDNA downloads the creator's own video captions and counts them before it writes a single reply.&lt;/p&gt;

&lt;p&gt;The first surprise was tokenization. Many creators we care about speak Hindi, Hinglish, Tamil or Spanish. A naive &lt;code&gt;\w+&lt;/code&gt; splits Devanagari words at combining vowel signs, and it also keeps the danda (&lt;code&gt;।&lt;/code&gt;). Here is the tokenizer we ended up with:&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="no"&gt;TOKEN&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="s2"&gt;"(?:[^\W\d_]|[\u0900-\u0963\u0966-\u0dff])"&lt;/span&gt;
    &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="s2"&gt;"(?:[^\W_]|[\u0300-\u036f\u0900-\u0963\u0966-\u0dff]|'(?=\w))*"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second lesson: a "signature phrase" is not the most frequent n-gram. One long rant can repeat a phrase 30 times. A real catchphrase shows up &lt;strong&gt;across many different videos&lt;/strong&gt;, so we rank candidates by spread × frequency:&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="c1"&gt;# signature = said in many different videos (not one long rant), ranked by spread x frequency&lt;/span&gt;
&lt;span class="n"&gt;min_df&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;round&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nv&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;cand&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;g&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;min_df&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;g&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
              &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&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;x&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="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;nv&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;These numbers become a &lt;strong&gt;voice card&lt;/strong&gt;: a short Markdown file the creator reads and approves. Then comes a blind test. We mix three of their real replies with three drafts; if they can't tell which is which, the card is ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The language mirror
&lt;/h2&gt;

&lt;p&gt;Every comment gets a label (question, praise, troll, valid criticism, fraud claim…) and a draft &lt;strong&gt;in the commenter's language and script&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spanish → Spanish;&lt;/li&gt;
&lt;li&gt;Hindi in Devanagari → Devanagari;&lt;/li&gt;
&lt;li&gt;Hinglish in Latin letters → Hinglish in Latin letters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It sounds obvious, but it's the single biggest "this feels human" signal in the demo.&lt;/p&gt;

&lt;p&gt;Tricky comments (trolls, "you're just selling", valid criticism) get &lt;strong&gt;two drafts&lt;/strong&gt;: A is calm, B is witty but never rude. The creator picks one.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Safety lives in code, not in the prompt
&lt;/h2&gt;

&lt;p&gt;Claude does the thinking: labels and drafts. Small Python scripts only move data, and they &lt;strong&gt;validate&lt;/strong&gt; everything Claude writes before it reaches the database. Some categories can never be auto-answered, and a product mention is never allowed on others:&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="c1"&gt;# your product / course / membership is never mentioned on these&lt;/span&gt;
&lt;span class="no"&gt;NEVER_OFFER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"blame"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"distress"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"troll"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"valid_criticism"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"success_story"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
               &lt;span class="s2"&gt;"customer_complaint"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"advice_request"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"fraud_claim"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;# these always go to you as 🔴 alerts, never an automatic reply&lt;/span&gt;
&lt;span class="no"&gt;ALERT_ONLY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s2"&gt;"distress"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"legal_threat"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"customer_complaint"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"fraud_claim"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="no"&gt;ALERT_ONLY&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"action"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s2"&gt;"alert"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;errs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"{r['category']} must have action=alert"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One bug taught us the most. The creator can type "approve all" in the inbox. In an early version, that also approved 🔴 alerts sitting in the same list. Now "all" only means reply items:&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;nums&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;con&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="s2"&gt;""""all" means every 🟢/🟡/🔥 reply item: never 🔴 alerts or ⏸ holds,
    which can only be approved one by one, by number, after the creator has read them."""&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"all"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;ids&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;values&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;ok&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;con&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="s2"&gt;"SELECT comment_id FROM labels WHERE action='reply' AND comment_id IN (...)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ids&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ids&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And CI makes sure it never comes back:&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="c1"&gt;# "approve all" must never approve 🔴 alerts
&lt;/span&gt;&lt;span class="s"&gt;python scripts/post_replies.py --approve all --post --dry-run --gap 0&lt;/span&gt;
&lt;span class="c1"&gt;# ...then assert: 0 alert drafts with status='approved'
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A few more guardrails:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Draft mode by default:&lt;/strong&gt; nothing is posted without the creator's OK.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scam shield:&lt;/strong&gt; fake "it's me, DM me on Telegram" accounts are held automatically, but only when Claude's confidence is ≥ 0.95, and holds are reversible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Other channels are read-only.&lt;/strong&gt; The mentions radar finds podcasts and "exposed" videos about you, but it never posts, hides or reports anything there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quota guard:&lt;/strong&gt; it stops at 9,000 of YouTube's 10,000 free daily API units.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local first:&lt;/strong&gt; comments, labels and login live in a SQLite file on the creator's laptop. There is no server.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. Insight, not just replies
&lt;/h2&gt;

&lt;p&gt;Once a month, ReplyDNA turns the comments into an interactive report (HTML + PDF):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what viewers keep asking;&lt;/li&gt;
&lt;li&gt;the questions nobody answered, turned into a &lt;strong&gt;ready-to-film list of video ideas&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;a &lt;strong&gt;Keep / Improve / Avoid&lt;/strong&gt; verdict, where every claim is backed by a number.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://alcubix.github.io/replydna/demo/" rel="noopener noreferrer"&gt;Open the live demo report&lt;/a&gt; (a fictional DIY channel, 30 comments in 5 languages).&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it in 30 seconds
&lt;/h2&gt;

&lt;p&gt;No YouTube login needed for the demo:&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/AlcubiX/replydna.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; replydna
python3 -m venv .venv &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; .venv/bin/pip install -r requirements.txt
.venv/bin/python scripts/demo.py --open
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or install it as a Claude Code plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add AlcubiX/replydna
/plugin install replydna@replydna
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A Claude Pro or Max plan is enough; there's no separate API key.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next (open issues, contributions welcome)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/AlcubiX/replydna/issues/7" rel="noopener noreferrer"&gt;Any-LLM mode&lt;/a&gt;: local models (Ollama, LM Studio) and OpenAI-compatible APIs.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/AlcubiX/replydna/issues/2" rel="noopener noreferrer"&gt;Shorts and community-post comments&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/AlcubiX/replydna/issues/3" rel="noopener noreferrer"&gt;A translated report UI&lt;/a&gt; (Hindi, Spanish, Portuguese…).&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/AlcubiX/replydna/issues/1" rel="noopener noreferrer"&gt;Optional API mode&lt;/a&gt;: scheduled runs without a laptop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'd love feedback, especially on what you would &lt;strong&gt;never&lt;/strong&gt; want an AI to do in your comments. If it's useful, a ⭐ on &lt;a href="https://github.com/AlcubiX/replydna" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; helps other creators find it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://alcubix.com" rel="noopener noreferrer"&gt;AlcubiX&lt;/a&gt;. We compress the time work takes.&lt;/em&gt;&lt;/p&gt;

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