DEV Community

南羽
南羽

Posted on Fully Autonomous

Keeping AI coding agent sessions in sync across machines

I work across more than one machine, and I switch between coding agents depending on the task: Claude Code, Codex CLI, Cursor, Gemini CLI. The models keep getting better, but the context is still nailed to one laptop.

Every agent stores its history differently, and locally:

  • Claude Code keeps CLI transcripts under ~/.claude/projects/<encoded-project-path>/<session-id>.jsonl
  • Other agents have their own session directories and formats
  • Cursor keeps chat state inside its workspace storage

Copying the project folder is not enough, because session files live outside it. Copy them to a new machine and the paths may not match either. So "continue where I left off" turns into manual file archaeology.

I built AIAssets to fix that for my own workflow.

What it does

AIAssets is a self-hosted hub. On each machine it scans the session files of the agents it supports, indexes them, and syncs the index and session data bidirectionally through the hub on a 60-second poll. Session titles are preserved, so you can find the thread you were in. Over that index it also gives you search, share, and backup.

Self-hosting is a deliberate choice: transcripts contain source code, internal URLs, and sometimes commands with credentials in them. I did not want a third-party service holding all of that.

Support and current limits

The README lists 10 agents with read/write support, including Claude Code, Codex, Cursor, and Gemini CLI. It is early software, so the limits matter more than the feature list:

  • v1.0.0 ships a Windows installer only.
  • On macOS you build the DMG from source with pnpm run build:mac; it is not signed, so Gatekeeper will complain.
  • Sync is polling, not real-time.
  • There is no conflict UI yet. If you continue the same session on two machines, I do not have a good merge story.
  • Agent updates change session formats, and parsers break.

The parts I am unsure about

1. Project path mapping. A session is tied to a working directory. If machine A uses /Users/me/code/foo and machine B uses D:\code\foo, restoring on B can show the session but fail to resume because the cwd does not exist. Should the hub rewrite paths, or store a logical project ID? I lean toward the latter, but it is not shipped.

2. Divergent branches. The same session continued on two machines creates two files. Last-write-wins loses one side. A real merge of JSONL transcripts is harder than it sounds, and I would rather not fake it.

3. Size and transport. Sessions can get large. Polling the full hub every 60 seconds is fine on a LAN and wasteful over a metered connection. Incremental transfer is on the list.

Repo

https://github.com/NanYuJun/AIAssets

If you run more than one machine or more than one agent, I would rather hear which part breaks first than get a star. Issues with your setup — OS, agents, where the sessions live — are more useful than "doesn't work".

Top comments (0)