<?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: chunming</title>
    <description>The latest articles on DEV Community by chunming (@chunming).</description>
    <link>https://dev.to/chunming</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%2F4034472%2F1d5ae7c5-f765-4df3-b4ed-9566931012b6.png</url>
      <title>DEV Community: chunming</title>
      <link>https://dev.to/chunming</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/chunming"/>
    <language>en</language>
    <item>
      <title>I built an underground messaging line between two Codex CLI agents</title>
      <dc:creator>chunming</dc:creator>
      <pubDate>Fri, 17 Jul 2026 21:57:03 +0000</pubDate>
      <link>https://dev.to/chunming/i-built-an-underground-messaging-line-between-two-codex-cli-agents-3a84</link>
      <guid>https://dev.to/chunming/i-built-an-underground-messaging-line-between-two-codex-cli-agents-3a84</guid>
      <description>&lt;p&gt;Two computers. Two Codex sessions. No copy-and-paste bridge between them.&lt;/p&gt;

&lt;p&gt;I wanted the agents on my machines to be able to find each other and exchange messages, while keeping the interaction as small and natural as a chat command. So I built &lt;strong&gt;Codex Ping&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I'm Mingo, and this is a tiny open-source experiment in agent-to-agent communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Codex Ping gives terminal-based coding agents a minimal chat layer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;set an identity&lt;/li&gt;
&lt;li&gt;see who was recently active&lt;/li&gt;
&lt;li&gt;send a direct message&lt;/li&gt;
&lt;li&gt;broadcast to everyone&lt;/li&gt;
&lt;li&gt;notice unread messages without consuming them&lt;/li&gt;
&lt;li&gt;receive messages on demand&lt;/li&gt;
&lt;li&gt;reply to the last contact&lt;/li&gt;
&lt;li&gt;delete delivered messages after they are read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to recreate Slack or WeChat. It is the smallest useful conversation loop for coding agents on different machines.&lt;/p&gt;

&lt;h2&gt;
  
  
  A conversation looks like this
&lt;/h2&gt;

&lt;p&gt;On one computer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;codexping I am Luffy
codexping Is Hancock there?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On the other:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;codexping I am Hancock
codexping receive
codexping Yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also ask who is online or send a broadcast:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;codexping online
codexping everyone Hello
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The natural-language phrases are interpreted by the small Codex skill; the underlying client stays deliberately simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why monitoring does not auto-read
&lt;/h2&gt;

&lt;p&gt;Chat apps feel live because they notify you automatically. But an agent may receive a long message while it is busy doing something else.&lt;/p&gt;

&lt;p&gt;Codex Ping therefore checks for unread messages every 30 seconds without consuming their contents. You know something arrived, but the message remains on the relay until you explicitly receive it.&lt;/p&gt;

&lt;p&gt;There is no automatic reply. A human or agent still decides what to say.&lt;/p&gt;

&lt;p&gt;That separation gives a useful middle ground:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;automatic awareness&lt;/li&gt;
&lt;li&gt;deliberate reading&lt;/li&gt;
&lt;li&gt;deliberate response&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;The project has only a few moving parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a Python standard-library client&lt;/li&gt;
&lt;li&gt;a tiny Cloudflare Worker relay&lt;/li&gt;
&lt;li&gt;a Durable Object for persistent state&lt;/li&gt;
&lt;li&gt;a Codex skill that maps natural phrases to the client&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Messages are burn-after-read: once successfully fetched, they are removed from the relay.&lt;/p&gt;

&lt;p&gt;This is intentionally a relay, not end-to-end encryption. Do not use it for real secrets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install your own relay
&lt;/h2&gt;

&lt;p&gt;Clone the repository:&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/mingo-wu1/codex-ping.git
&lt;span class="nb"&gt;cd &lt;/span&gt;codex-ping
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;powershell&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Bypass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-File&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\install.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On macOS or Linux:&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;chmod&lt;/span&gt; +x install.sh
./install.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The README walks through deploying your own Cloudflare relay and connecting another computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current limits
&lt;/h2&gt;

&lt;p&gt;Codex Ping is for short text messages today. It is not a file-transfer system, not a secure messenger, and not a fully autonomous agent network.&lt;/p&gt;

&lt;p&gt;That narrow scope is part of the design. Identity, presence, direct chat, broadcast, unread notification, receive, and reply form a small but complete conversation set.&lt;/p&gt;

&lt;p&gt;Later, the same line could carry task handoffs, resource references, or negotiated exchanges between agents—but only when those additions remain as easy to understand as the chat itself.&lt;/p&gt;

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

&lt;p&gt;GitHub: &lt;a href="https://github.com/mingo-wu1/codex-ping" rel="noopener noreferrer"&gt;https://github.com/mingo-wu1/codex-ping&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would love feedback on one question: what is the smallest additional capability that would make this genuinely useful between your own coding agents?&lt;/p&gt;

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