<?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: Edgar Durand Díaz</title>
    <description>The latest articles on DEV Community by Edgar Durand Díaz (@edgar_duranddiaz).</description>
    <link>https://dev.to/edgar_duranddiaz</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%2F3907812%2F2a9ad0cf-56b0-491e-97de-9e81a7c4cc0f.jpg</url>
      <title>DEV Community: Edgar Durand Díaz</title>
      <link>https://dev.to/edgar_duranddiaz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edgar_duranddiaz"/>
    <language>en</language>
    <item>
      <title>How to control Claude Code from your phone</title>
      <dc:creator>Edgar Durand Díaz</dc:creator>
      <pubDate>Fri, 01 May 2026 16:12:14 +0000</pubDate>
      <link>https://dev.to/edgar_duranddiaz/how-to-control-claude-code-from-your-phone-4ha0</link>
      <guid>https://dev.to/edgar_duranddiaz/how-to-control-claude-code-from-your-phone-4ha0</guid>
      <description>&lt;p&gt;&lt;em&gt;A walkthrough of pairing your terminal with a mobile remote, with notes on PTY handling and React Ink quirks I learned the hard way.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The problem — describe the "agent paused, dev paused" loop. Why mobile makes sense (you have notifications, voice input, a touchscreen — all the pieces).

&lt;ol&gt;
&lt;li&gt;What it is, in one sentence — CodeAgent Mobile is a mobile app + CLI that pair via 6-character code so you can drive Claude Code from your phone while it runs locally on
your laptop.
&lt;/li&gt;
&lt;li&gt;Setup walkthrough (with code blocks):
npm install -g codeam-cli
codeam pair                 # prints a 6-char code
Pairing code: 7K2QFM
Waiting for mobile…
&lt;/li&gt;
&lt;li&gt;Open the app, enter the code, then:
codeam                      # spawns Claude Code; you control from phone now&lt;/li&gt;
&lt;li&gt;What you can actually do from the phone — bullet list with screenshots: prompt input (text + voice), output streaming, approve interactive prompts (y/n, numbered
selectors), file attachments, model picker.
&lt;/li&gt;
&lt;li&gt;The interesting technical bits (this is what makes it a Dev.to-worthy post, not a sales pitch):
&lt;/li&gt;
&lt;li&gt;Why a Python PTY helper: Node's child_process.spawn doesn't allocate a full PTY by default → Claude Code (which uses React Ink) refuses to render interactive UI without a
TTY. The Python helper wraps the spawn so stdin.isTTY === true even when the CLI's parent is non-interactive.
&lt;/li&gt;
&lt;li&gt;The 80ms arrow key gap: arrow keys for navigating Ink selectors must be sent one at a time with ≥80ms between each. Sending them in a single write() collapses them into
one synchronous batch and React batches the state updates → Enter always picks option 0. Took weeks to track down.
&lt;/li&gt;
&lt;li&gt;Why the backend is just a relay: code never leaves your machine; Anthropic billing stays on your existing key; the backend has zero LLM cost so the free tier can be
generous.
&lt;/li&gt;
&lt;li&gt;Caveats — needs internet, free tier limits, you still need an Anthropic subscription on your laptop.
&lt;/li&gt;
&lt;li&gt;What's next — roadmap (multi-agent comparison, voice-driven flows, etc.).
&lt;/li&gt;
&lt;li&gt;CTA — install, try it, give feedback. Link to repo.&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>claude</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>anthropic</category>
    </item>
  </channel>
</rss>
