<?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: Snow Lee</title>
    <description>The latest articles on DEV Community by Snow Lee (@snowhy).</description>
    <link>https://dev.to/snowhy</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%2F4048521%2F534c0ded-13ff-42f5-9e7a-5ba133a15116.jpg</url>
      <title>DEV Community: Snow Lee</title>
      <link>https://dev.to/snowhy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/snowhy"/>
    <language>en</language>
    <item>
      <title>How to sync Claude Code across multiple machines</title>
      <dc:creator>Snow Lee</dc:creator>
      <pubDate>Tue, 28 Jul 2026 09:54:54 +0000</pubDate>
      <link>https://dev.to/snowhy/how-to-sync-claude-code-across-multiple-machines-1l6h</link>
      <guid>https://dev.to/snowhy/how-to-sync-claude-code-across-multiple-machines-1l6h</guid>
      <description>&lt;h1&gt;
  
  
  How to sync Claude Code across multiple machines
&lt;/h1&gt;

&lt;p&gt;If you use Claude Code on more than one machine, you know the drift: the CLAUDE.md you refined on your desktop isn't on your laptop, skills live in one place, session notes in another, and the agent on machine B happily works from stale context.&lt;/p&gt;

&lt;p&gt;Git doesn't fix this well. Your agent's working context — notes, plans, skills, scratch files — changes constantly, mid-session, on whatever machine you're on. Committing "update notes" forty times a day isn't a workflow, and half these files don't belong in your repo anyway.&lt;/p&gt;

&lt;p&gt;We built BearDrive for exactly this (it's open source, AGPL — &lt;a href="https://github.com/runbear-io/beardrive" rel="noopener noreferrer"&gt;repo&lt;/a&gt;). Here's the setup, end to end, in about two minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Install and sign in (once per machine)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;runbear-io/tap/beardrive
bdrive login            &lt;span class="c"&gt;# BearDrive Cloud, or: bdrive login https://your-hub&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;login&lt;/code&gt; opens a browser sign-in and stores a per-device token. Self-hosting? A hub is one command (&lt;code&gt;bdrive web s3://bucket/root --upload&lt;/code&gt;) — separate post coming.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Start syncing a folder
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/agent-workspace
bdrive init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it — the folder now syncs through your hub via a background daemon. Files stay real files on disk, so every editor, tool, and agent works on them unchanged. Inside a repo, sync just the knowledge folder instead of the root: &lt;code&gt;bdrive init --shared docs&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On your other machine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bdrive login
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/agent-workspace &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; bdrive init &lt;span class="nt"&gt;--name&lt;/span&gt; agent-workspace
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same project name + same hub = the folders converge.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. The part that makes it agent-native
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bdrive hooks &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This detects the agent platforms you use — Claude Code, Codex, Gemini CLI, Hermes — and registers turn-boundary sync hooks in each one's own config: pull the latest files when your prompt is submitted, push right after the agent edits. Your agent starts every turn on current files, on every machine, and every change it makes is stamped with the session that made it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;bdrive log &lt;span class="nt"&gt;-p&lt;/span&gt; notes/plan.md
&lt;span class="go"&gt;2026-07-28 09:14  put  notes/plan.md  snow on macbook  [claude-code session a1b2…]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Verify
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bdrive status    &lt;span class="c"&gt;# daemon running, pending: 0 → you're synced&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What you get beyond sync
&lt;/h2&gt;

&lt;p&gt;Per-file change history with who/when/which device, conflict copies instead of silent overwrites, offline support, share links for teammates, and a read heatmap showing which files your agents actually use versus what's going stale.&lt;/p&gt;

&lt;p&gt;If Claude Code across machines has been biting you, try it and tell us what breaks: &lt;a href="https://github.com/runbear-io/beardrive" rel="noopener noreferrer"&gt;github.com/runbear-io/beardrive&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
