<?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: Youssef Tarek Ali</title>
    <description>The latest articles on Forem by Youssef Tarek Ali (@realorangekun).</description>
    <link>https://forem.com/realorangekun</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%2F3163663%2F94608739-73ab-4f67-be3e-952e9088d2fc.jpeg</url>
      <title>Forem: Youssef Tarek Ali</title>
      <link>https://forem.com/realorangekun</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/realorangekun"/>
    <language>en</language>
    <item>
      <title>Archy: An Intelligent Arch Linux Assistant Built with GitHub Copilot CLI</title>
      <dc:creator>Youssef Tarek Ali</dc:creator>
      <pubDate>Sat, 14 Feb 2026 17:26:47 +0000</pubDate>
      <link>https://forem.com/realorangekun/archy-an-intelligent-arch-linux-assistant-built-with-github-copilot-cli-4284</link>
      <guid>https://forem.com/realorangekun/archy-an-intelligent-arch-linux-assistant-built-with-github-copilot-cli-4284</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Archy&lt;/strong&gt; is an intelligent Arch Linux assistant that remembers your system preferences across conversations and provides real-time package information. Built entirely with GitHub Copilot CLI in ~5 hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎯 Key Features
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;🧠 Cross-Chat Memory&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;You (Chat 1): "I use Hyprland and yay"
[Memory stored]

You (Chat 2): "How do I update my system?"
Archy: "Run yay -Syu to update..." (uses your AUR helper!)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;📦 Real-Time Package Data&lt;/strong&gt; - Fetches live versions from archlinux.org&lt;br&gt;
&lt;strong&gt;🔍 Web Search&lt;/strong&gt; - Searches when it doesn't know something&lt;br&gt;
&lt;strong&gt;🛡️ Strict Boundaries&lt;/strong&gt; - Only responds to Arch Linux topics (zero tolerance)&lt;br&gt;
&lt;strong&gt;💬 Modern UI&lt;/strong&gt; - Skeleton loading, stop button, markdown rendering&lt;/p&gt;
&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: FastAPI + PostgreSQL + Ollama (llama3.2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: React + Vite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: Docker Compose (fully containerized)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;
&lt;h3&gt;
  
  
  🚀 Try It Live
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/RealOrangeKun/arch-linux-assistant.git
&lt;span class="nb"&gt;cd &lt;/span&gt;arch-linux-assistant
docker-compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
docker &lt;span class="nb"&gt;exec&lt;/span&gt; &lt;span class="nt"&gt;-it&lt;/span&gt; arch-assistant-ollama ollama pull llama3.2
&lt;span class="c"&gt;# Visit http://localhost:3000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;🔐 Test Account (for judges)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email: &lt;code&gt;judge@devto.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;ArchyDemo2024!&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Automatically created on first startup via database seed script&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Includes sample chat demonstrating the memory feature&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Chat Interface with Memory&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ujzdggnpi9qwlj225bb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ujzdggnpi9qwlj225bb.png" alt="Chat Demo" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  GitHub Copilot CLI Experience
&lt;/h2&gt;
&lt;h3&gt;
  
  
  🚀 The Game Changer
&lt;/h3&gt;

&lt;p&gt;GitHub Copilot CLI transformed this from a 2-3 week project into a &lt;strong&gt;5-hour sprint&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rapid Prototyping&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;Me: &lt;span class="s2"&gt;"Create streaming chat endpoint with Ollama"&lt;/span&gt;
Copilot: &lt;span class="o"&gt;[&lt;/span&gt;Complete async implementation with error handling]
Me: &lt;span class="s2"&gt;"Add skeleton loading with shimmer effect"&lt;/span&gt;
Copilot: &lt;span class="o"&gt;[&lt;/span&gt;Full CSS animation + React component]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Instant Debugging&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQLAlchemy session errors? Fixed in one go.&lt;/li&gt;
&lt;li&gt;CORS for streaming? Configured instantly.&lt;/li&gt;
&lt;li&gt;bcrypt compatibility? Downgraded and patched automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Architecture Guidance&lt;/strong&gt;&lt;br&gt;
Copilot didn't just write code - it suggested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using AbortController for cancellable requests&lt;/li&gt;
&lt;li&gt;Pattern matching for memory extraction&lt;/li&gt;
&lt;li&gt;Proper Docker networking with health checks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  💡 Key Moments
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Most Impressive&lt;/strong&gt;: Asked for "skeleton loading animation" - got complete CSS with keyframes, shimmer effect, and React integration. First try. Just worked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time Saved&lt;/strong&gt;: What would take 2-3 weeks of Stack Overflow searches took 5 focused hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Technical Highlights
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Memory Extraction
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;patterns&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;i use (hyprland|i3|kde)&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;window_manager&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;name&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="sa"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;i prefer (yay|paru)&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;aur_helper&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;name&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;# Auto-stores in PostgreSQL for cross-chat recall
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Real-Time Package Intelligence
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;install&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;pkg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;extract_package_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch_arch_api&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pkg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# Live version!
&lt;/span&gt;    &lt;span class="nf"&gt;inject_into_llm_context&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Strict Boundaries
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;SYSTEM_PROMPT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
ABSOLUTE RULES - ZERO TOLERANCE:
- Only help with Arch Linux topics
- Refuse all off-topic questions immediately
- No fallback offers
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Development Timeline
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hour 1&lt;/strong&gt;: Docker Compose + FastAPI + Auth ✅&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hour 2-3&lt;/strong&gt;: Chat streaming + Session management ✅&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hour 4&lt;/strong&gt;: Memory system + Package API ✅&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hour 5&lt;/strong&gt;: UI polish + Web search ✅&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total: 5 hours&lt;/strong&gt; from zero to production-ready!&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges Solved
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;LLM Hallucinations&lt;/strong&gt; → Real-time API + context injection&lt;br&gt;
&lt;strong&gt;Rate Limits&lt;/strong&gt; → Graceful fallback with error messages&lt;br&gt;
&lt;strong&gt;Boundary Violations&lt;/strong&gt; → Extremely strict system prompts&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Copilot CLI is a 10x multiplier&lt;/strong&gt; - Not replacing devs, amplifying them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLMs need guardrails&lt;/strong&gt; - Strict prompts prevent scope creep&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context injection&lt;/strong&gt; - Real-time data prevents hallucinations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UX matters&lt;/strong&gt; - Loading states and stop buttons improve experience&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Future Plans
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] RAG with Arch Wiki&lt;/li&gt;
&lt;li&gt;[ ] AUR package support&lt;/li&gt;
&lt;li&gt;[ ] Voice interface&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/RealOrangeKun/arch-linux-assistant" rel="noopener noreferrer"&gt;RealOrangeKun/arch-linux-assistant&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ Star if you find it useful!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Built with&lt;/strong&gt;: GitHub Copilot CLI, FastAPI, React, Ollama, PostgreSQL, Docker&lt;br&gt;
&lt;strong&gt;Time&lt;/strong&gt;: 5 hours | &lt;strong&gt;Lines&lt;/strong&gt;: ~3,000 | &lt;strong&gt;Fun&lt;/strong&gt;: Immeasurable 🚀&lt;/p&gt;

&lt;p&gt;Try Archy and never repeat your system config again!&lt;/p&gt;

&lt;h1&gt;
  
  
  GitHubCopilot #ArchLinux #AI #OpenSource
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
