<?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: Fahad R</title>
    <description>The latest articles on Forem by Fahad R (@dream_twister_4d65a3a36a4).</description>
    <link>https://forem.com/dream_twister_4d65a3a36a4</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%2F3908121%2Fb0b85388-ea90-47b6-a57f-24c86871fe7a.jpg</url>
      <title>Forem: Fahad R</title>
      <link>https://forem.com/dream_twister_4d65a3a36a4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dream_twister_4d65a3a36a4"/>
    <language>en</language>
    <item>
      <title>I gave my AI agent 3 tasks. Here's exactly what happened.</title>
      <dc:creator>Fahad R</dc:creator>
      <pubDate>Sun, 03 May 2026 18:25:26 +0000</pubDate>
      <link>https://forem.com/dream_twister_4d65a3a36a4/i-gave-my-ai-agent-3-tasks-heres-exactly-what-happened-2hde</link>
      <guid>https://forem.com/dream_twister_4d65a3a36a4/i-gave-my-ai-agent-3-tasks-heres-exactly-what-happened-2hde</guid>
      <description>&lt;p&gt;I've been building a self-hosted AI agent for 2 months.&lt;/p&gt;

&lt;p&gt;Last week I stopped adding features and just... used it.&lt;/p&gt;

&lt;p&gt;Here are 3 things I asked it to do, exactly what I typed, &lt;br&gt;
and exactly what happened.&lt;/p&gt;


&lt;h2&gt;
  
  
  Task 1 — Research catnip and send me the file on Telegram
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/PrSM22Vr1tE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;That's the whole message. Nothing else.&lt;/p&gt;

&lt;p&gt;Here's what happened:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It searched the web across multiple sources&lt;/li&gt;
&lt;li&gt;Cross-referenced and synthesised the findings&lt;/li&gt;
&lt;li&gt;Wrote a structured research report&lt;/li&gt;
&lt;li&gt;Saved it as a file on my machine&lt;/li&gt;
&lt;li&gt;Sent the file directly to me on Telegram&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I opened my phone and the file was just there. A proper &lt;br&gt;
research report. Not a chat message, an actual document &lt;br&gt;
I could open, save, and share.&lt;/p&gt;

&lt;p&gt;The whole thing took about 90 seconds.&lt;/p&gt;

&lt;p&gt;What got me wasn't the speed. It was that I didn't have &lt;br&gt;
to tell it how. I just said what I wanted and it figured &lt;br&gt;
out the steps.&lt;/p&gt;


&lt;h2&gt;
  
  
  Task 2 — Find the top 10 skipping ropes on Amazon,
&lt;/h2&gt;

&lt;p&gt;analyse them, create a Google Doc and email it&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/tqt5gnHBlG4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This one I was skeptical about.&lt;/p&gt;

&lt;p&gt;Four separate things chained together. Web research, &lt;br&gt;
document creation, Google Docs integration, and email &lt;br&gt;
delivery. I expected it to fail somewhere in the middle.&lt;/p&gt;

&lt;p&gt;It didn't.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Searched and scraped Amazon product listings&lt;/li&gt;
&lt;li&gt;Analysed and ranked the top 10 by reviews, price, 
and features&lt;/li&gt;
&lt;li&gt;Created a formatted Google Doc with the full analysis&lt;/li&gt;
&lt;li&gt;Emailed it to the address I gave&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I walked away while it ran. Came back. The Google Doc &lt;br&gt;
existed. The email had been sent.&lt;/p&gt;

&lt;p&gt;That was the moment I went "wait, it actually did that?"&lt;/p&gt;

&lt;p&gt;Even after 2 months of building it, it still catches &lt;br&gt;
me off guard.&lt;/p&gt;


&lt;h2&gt;
  
  
  Task 3 — Fix the bug in this repo, open a PR,
&lt;/h2&gt;

&lt;p&gt;run the tests and health check every minute&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/Q1RzbQK-jx4"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This one is for the developers.&lt;/p&gt;

&lt;p&gt;I pointed it at a GitHub repo with a known bug. One message.&lt;/p&gt;

&lt;p&gt;Here's what it did:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cloned and read the codebase&lt;/li&gt;
&lt;li&gt;Identified the bug&lt;/li&gt;
&lt;li&gt;Wrote the fix&lt;/li&gt;
&lt;li&gt;Ran the test suite locally, all passing&lt;/li&gt;
&lt;li&gt;Opened a pull request on GitHub&lt;/li&gt;
&lt;li&gt;Set up a cron job to health check the service 
every 60 seconds&lt;/li&gt;
&lt;li&gt;Sent me a Telegram ping with the health status 
each time it ran&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The PR was real. The tests passed. The health checks &lt;br&gt;
kept coming.&lt;/p&gt;

&lt;p&gt;I made coffee during this one.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's actually happening under the hood
&lt;/h2&gt;

&lt;p&gt;All three tasks ran through the same agent loop.&lt;/p&gt;

&lt;p&gt;Task 1 used webSearch, writeFile, and replyWithFile.&lt;/p&gt;

&lt;p&gt;Task 2 used browserAction, createDocument, useMCP &lt;br&gt;
for Google, and sendEmail.&lt;/p&gt;

&lt;p&gt;Task 3 used gitTool, executeCommand, useMCP for GitHub, &lt;br&gt;
cron, and messageChannel.&lt;/p&gt;

&lt;p&gt;The agent decides which tools to use, in what order, &lt;br&gt;
and handles errors along the way. You just describe &lt;br&gt;
what you want.&lt;/p&gt;




&lt;h2&gt;
  
  
  The part that matters
&lt;/h2&gt;

&lt;p&gt;None of this runs on anyone else's server.&lt;/p&gt;

&lt;p&gt;It runs on my machine. My API keys stay in an &lt;br&gt;
AES-256-GCM encrypted vault. My files stay local. &lt;br&gt;
Nothing leaves my infrastructure except the tokens &lt;br&gt;
I send to the model APIs I choose.&lt;/p&gt;

&lt;p&gt;I can use OpenAI, Anthropic, Google, Groq, DeepSeek, &lt;br&gt;
Mistral, or Ollama locally with no API key needed at all.&lt;/p&gt;




&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; daemora
daemora setup
daemora start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then message your Telegram or Discord bot. Tell it &lt;br&gt;
what you want. See what happens.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/CodeAndCanvasLabs/Daemora" rel="noopener noreferrer"&gt;https://github.com/CodeAndCanvasLabs/Daemora&lt;/a&gt;&lt;br&gt;
Website: &lt;a href="https://daemora.com" rel="noopener noreferrer"&gt;https://daemora.com&lt;/a&gt;&lt;br&gt;
npm: &lt;a href="https://npmjs.com/package/daemora" rel="noopener noreferrer"&gt;https://npmjs.com/package/daemora&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What would you ask it to do first?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a self-hosted AI agent that markets itself. Here's how.</title>
      <dc:creator>Fahad R</dc:creator>
      <pubDate>Fri, 01 May 2026 20:39:30 +0000</pubDate>
      <link>https://forem.com/dream_twister_4d65a3a36a4/i-built-a-self-hosted-ai-agent-that-markets-itself-heres-how-5efc</link>
      <guid>https://forem.com/dream_twister_4d65a3a36a4/i-built-a-self-hosted-ai-agent-that-markets-itself-heres-how-5efc</guid>
      <description>&lt;p&gt;Two months ago my co-founder and I got tired of paying for AI tools &lt;br&gt;
that live on someone else's server, phone home constantly, and charge &lt;br&gt;
per seat.&lt;/p&gt;

&lt;p&gt;So we built our own.&lt;/p&gt;

&lt;p&gt;Today we're open sourcing it. It's called Daemora.&lt;/p&gt;
&lt;h2&gt;
  
  
  What it actually does
&lt;/h2&gt;

&lt;p&gt;You install it with one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; daemora
daemora setup
daemora start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then you message your Telegram or Discord bot like a teammate.&lt;/p&gt;

&lt;p&gt;This week I asked it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find the top 10 skipping ropes on Amazon, analyse them, 
create a Google Doc and email it to someone&lt;/li&gt;
&lt;li&gt;Research catnip, write a report, save it to my machine 
and send it to me on Telegram&lt;/li&gt;
&lt;li&gt;Fix a bug in a GitHub repo, open a PR, run the tests 
and health check the service every minute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All three worked. While I made coffee.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that surprised us most
&lt;/h2&gt;

&lt;p&gt;We thought the hard part would be the LLM integration.&lt;/p&gt;

&lt;p&gt;It wasn't.&lt;/p&gt;

&lt;p&gt;The hard part was security. When you give an AI agent access &lt;br&gt;
to your actual machine, you have to think about things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preventing it from dumping your environment variables&lt;/li&gt;
&lt;li&gt;Stopping it from reading files outside its sandbox&lt;/li&gt;
&lt;li&gt;Stripping secrets from subprocess environments so they 
can't be leaked via executeCommand&lt;/li&gt;
&lt;li&gt;Blocking network egress if a response contains a known 
secret value&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We ended up with a 14-layer security model. AES-256-GCM &lt;br&gt;
encrypted vault, filesystem sandbox, subprocess isolation, &lt;br&gt;
egress guard, prompt injection tagging. You can run &lt;br&gt;
&lt;code&gt;daemora doctor&lt;/code&gt; for a full scored security audit.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing we're most proud of
&lt;/h2&gt;

&lt;p&gt;Three-layer memory.&lt;/p&gt;

&lt;p&gt;Daemora has semantic, episodic, and procedural memory with &lt;br&gt;
automatic extraction, composite-scored recall, and confidence &lt;br&gt;
decay. It learns from every task without you manually saving &lt;br&gt;
anything. Unified session across all channels - you can start &lt;br&gt;
a task on Telegram and follow up on Discord.&lt;/p&gt;

&lt;p&gt;It also has smart loop detection. If the agent starts burning &lt;br&gt;
tokens in repetitive patterns - exact repeat, ping-pong, &lt;br&gt;
semantic repeat, or polling loops - it detects and stops &lt;br&gt;
automatically. This one saved us a lot of money during &lt;br&gt;
development.&lt;/p&gt;

&lt;h2&gt;
  
  
  The meta part
&lt;/h2&gt;

&lt;p&gt;This week I gave Daemora a prompt to market itself.&lt;/p&gt;

&lt;p&gt;Set up watchers for competitor mentions. Draft Reddit posts. &lt;br&gt;
Monitor GitHub for star spikes. Send me a Telegram report &lt;br&gt;
every Friday with growth metrics. Generate short-form videos &lt;br&gt;
via the Media Studio crew and post them automatically.&lt;/p&gt;

&lt;p&gt;It's now running its own growth campaign. Autonomously. &lt;br&gt;
On my laptop.&lt;/p&gt;

&lt;p&gt;That felt like the moment we knew it was real.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's inside
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;52 built-in tools&lt;/strong&gt; - files, web, shell, email, 
scheduling, vision, media, multi-agent delegation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;20 messaging channels&lt;/strong&gt; - Telegram, Slack, Discord, 
WhatsApp, email, Signal, Teams and more&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7 AI providers&lt;/strong&gt; including Ollama - works fully local, 
no API key needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native MCP integration&lt;/strong&gt; - GitHub, Notion, Linear, 
Postgres in one command&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Media Studio crew&lt;/strong&gt; - generate AI images, videos, and 
music. Edit videos with Remotion - add captions, 
transitions, effects programmatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provider failover&lt;/strong&gt; - automatic retry with exponential 
backoff. If a provider goes down, switches automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three-layer memory&lt;/strong&gt; - semantic, episodic, procedural. 
Learns from every task, no manual saving needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;60 built-in skills&lt;/strong&gt; - coding, research, email, GitHub, 
Slack, Google Workspace, macOS automation and more&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The stack if you're curious
&lt;/h2&gt;

&lt;p&gt;Runtime:    Node.js 20+ - ES modules, no build step&lt;br&gt;
AI SDK:     Vercel AI SDK - model-agnostic, 25+ providers&lt;br&gt;
Storage:    SQLite + file-based (Markdown, JSONL)&lt;br&gt;
Scheduling: croner - production-grade cron&lt;br&gt;
Vault:      Node.js crypto built-in - AES-256-GCM + scrypt&lt;br&gt;
Voice:      Twilio + OpenAI Realtime STT + ElevenLabs TTS&lt;br&gt;
Video:      Remotion - React-based programmatic video editing&lt;/p&gt;

&lt;p&gt;No Docker required. No binary dependencies for the vault. &lt;br&gt;
Runs as a system daemon on macOS, Linux, or Windows WSL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; daemora
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;AGPL-3.0. Everything runs on your machine. Nothing leaves &lt;br&gt;
your infrastructure except the tokens you send to model APIs.&lt;/p&gt;

&lt;p&gt;⭐ GitHub: &lt;a href="https://github.com/CodeAndCanvasLabs/Daemora" rel="noopener noreferrer"&gt;https://github.com/CodeAndCanvasLabs/Daemora&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🌐 Website: &lt;a href="https://daemora.com" rel="noopener noreferrer"&gt;https://daemora.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📦 npm: &lt;a href="https://npmjs.com/package/daemora" rel="noopener noreferrer"&gt;https://npmjs.com/package/daemora&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear what you'd automate first — drop it &lt;br&gt;
in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>selfhosted</category>
      <category>node</category>
    </item>
  </channel>
</rss>
