<?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: M Waleed Kadous</title>
    <description>The latest articles on Forem by M Waleed Kadous (@waleedkadous).</description>
    <link>https://forem.com/waleedkadous</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%2F3870453%2F110f1199-7fd0-442a-bdc2-cecebb09a82b.jpeg</url>
      <title>Forem: M Waleed Kadous</title>
      <link>https://forem.com/waleedkadous</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/waleedkadous"/>
    <language>en</language>
    <item>
      <title>CI Channel for Claude Channels CI notifications</title>
      <dc:creator>M Waleed Kadous</dc:creator>
      <pubDate>Tue, 21 Apr 2026 18:16:11 +0000</pubDate>
      <link>https://forem.com/waleedkadous/ci-channel-for-claude-channels-ci-notifications-2dl1</link>
      <guid>https://forem.com/waleedkadous/ci-channel-for-claude-channels-ci-notifications-2dl1</guid>
      <description>&lt;p&gt;Have you ever shipped code with Claude only to find out it didn’t make its way through your CI pipeline (it was stuck), but your AI didn’t do anything about it, and you only found out at the end of the day when you got an email?&lt;/p&gt;

&lt;p&gt;CI Channel is a tool that uses the brand new Claude Code Channels feature to prevent that from happening. As soon as CI fails in your favorite forge ( GitHub, GitLab, Gitea), it sends a message to your Claude Code agent. It investigates the issue and can suggest a fix before you’ve even realized there’s a problem.&lt;/p&gt;

&lt;p&gt;While most of the attention has gone to how to hook up agents to Discord, there are lots of cool, practical things you can do with channels.&lt;/p&gt;

&lt;p&gt;The project was built using Codev OS, so it’s fully documented and tested. It’s a showcase of how our agentic architecture enables us to ship modular, high-impact tools that solve real developer friction points.&lt;/p&gt;

&lt;p&gt;To use it, just do &lt;code&gt;npx -y ci-channel setup --repo owner/project&lt;/code&gt; in your favorite Claude Code workspace.&lt;/p&gt;

&lt;p&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%2Fpyaz6byu4xs13pnmjsi4.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%2Fpyaz6byu4xs13pnmjsi4.png" alt="CI Channel flow" width="750" height="530"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/cluesmith" rel="noopener noreferrer"&gt;
        cluesmith
      &lt;/a&gt; / &lt;a href="https://github.com/cluesmith/ci-channel" rel="noopener noreferrer"&gt;
        ci-channel
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Claude Code channel plugin for real-time CI/CD notifications (GitHub Actions, GitLab CI, Gitea)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;CI Channel for Claude Code&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Real-time CI/CD notifications delivered straight into your Claude Code session. When a CI workflow or pipeline fails, Claude sees it immediately and can investigate the failure, check logs, and suggest fixes — without you having to context-switch.&lt;/p&gt;
&lt;p&gt;Supports &lt;strong&gt;GitHub Actions&lt;/strong&gt;, &lt;strong&gt;GitLab CI&lt;/strong&gt;, and &lt;strong&gt;Gitea Actions&lt;/strong&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How It Works&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="snippet-clipboard-content notranslate position-relative overflow-auto"&gt;&lt;pre class="notranslate"&gt;&lt;code&gt;Forge (GitHub/GitLab/Gitea)
        │
    webhook POST
        │
        ▼
   smee.io (relay)     ← auto-provisioned on first run
        │
        ▼
   localhost:{port}    ← random port, no conflicts
        │
        ▼
┌───────────────────┐
│  Channel Plugin   │  ← validates signature, deduplicates, filters
│   (MCP server)    │
└─────────┬─────────┘
          │
          ▼
┌───────────────────┐
│   Claude Code     │  ← receives structured notification
│    (session)      │
└───────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick Start (One Command)&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Run this from inside the project you want to monitor:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; GitHub (default)&lt;/span&gt;
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; /path/to/your-project
npx -y ci-channel setup --repo owner/your-project
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; GitLab&lt;/span&gt;
npx -y ci-channel setup --forge gitlab --repo group/project

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Gitea (requires GITEA_TOKEN in&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/cluesmith/ci-channel" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>claude</category>
      <category>github</category>
    </item>
  </channel>
</rss>
