cd /news/developer-tools/show-hn-aisyncing-back-up-your-ai-co… · home topics developer-tools article
[ARTICLE · art-109378] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Show HN: AiSyncing – Back up your AI coding assistant memories to GitHub

AiSyncing, a new open-source tool by DiegoSalazar, automatically backs up AI coding assistant memories, configs, and instruction files to a private GitHub repository daily. It supports Claude Code, OpenAI Codex, Gemini CLI, Cursor, and custom tools, with features like auto-setup, configurable include lists, scheduled sync via macOS LaunchAgent, and native notifications. The tool addresses the risk of losing persistent local data from AI assistants by syncing to a private repo for easy restore.

read4 min views3 publishedAug 24, 2026
Show HN: AiSyncing – Back up your AI coding assistant memories to GitHub
Image: Michielbdejong (auto-discovered)

Automatic daily backups of your AI coding assistant memories, configs, and instruction files to a private GitHub repo.

Supports Claude Code, OpenAI Codex, Gemini CLI, Cursor, and any custom AI tool you add.

Multi-tool: backs up multiple AI harnesses simultaneously (Claude, Codex, Gemini, Cursor, Windsurf, or anything with a local config directory)Auto-setup: interactivesetup.sh

detects installed AI tools, creates a private GitHub backup repo, and configures everythingConfigurable allow list: per-sourceinclude

patterns inconfig.json

control exactly which files get backed up. Sane defaults for the top AI tools out of the box.Daily scheduled sync: macOS LaunchAgent runs at your chosen hour. Each commit shows which sources changed:sync(claude,codex): 2026-08-24 15:00:00

Native macOS notifications: a compiled Swift helper app shows banner notifications on each sync. Click to open your backup's commit history on GitHub.Restore anywhere: clone your backup repo on a new machine and rsync the data back

AI coding assistants store persistent memories, custom agents, instruction files, and config locally. This tool syncs them to a private GitHub repo so you never lose them.

Default include lists per tool:

Tool Source directory Files backed up
Claude Code ~/.claude
CLAUDE.md , settings.json , config.json , projects/*/memory/** , agents/** , commands/** , hooks/** , skills/**
OpenAI Codex ~/.codex
AGENTS.md , AGENTS.override.md , config.toml , *.config.toml , memories/**
Gemini CLI ~/.gemini
GEMINI.md , settings.json , commands/** , extensions/**
Cursor ~/.cursor
rules/** (.mdc files), mcp.json , permissions.json

Setup auto-detects which tools are installed and enables them. All include lists are fully configurable.

  • macOS (for notifications and scheduled sync via LaunchAgent) GitHub CLI(brew install gh

), authenticatedgit

,python3

,rsync

(pre-installed on macOS)

git clone https://github.com/DiegoSalazar/AiSyncing.git ~/AiSyncing
cd ~/AiSyncing
bash setup.sh

Setup will walk you through:

Backup repo: picks a name, auto-creates a private GitHub repo viagh

Git identity: name and email for backup commits (defaults to your global git config)** AI tools**: auto-detects installed tools by checking for their config directories** Schedule**: which hour to run the daily sync (default: 3 PM)** Build and install**: compiles the notification helper, installs the LaunchAgent, pushes the initial backup

The AiSyncing template repo is saved as the upstream

remote so you can pull updates later.

bash ~/AiSyncing/sync.sh
  • For each enabled source, sync.sh

reads theinclude

list fromconfig.json

  • Generates rsync filter rules at runtime (auto-includes parent directories for nested patterns)

  • Rsyncs each source directory into data/<source>/

  • Commits with a message showing which sources changed: sync(claude,gemini): 2026-08-24 15:00:00

  • Pushes to your private backup repo

  • Sends a macOS notification (click to open commit history)

Sources with missing directories are skipped with a warning, not fatal. If no sources sync, you get a notification about it.

Everything is in config.json

(created by setup.sh

). See config.example.json

for the full schema.

Each source has an include

array of glob patterns. Edit it to add or remove files:

{
  "sources": {
    "claude": {
      "enabled": true,
      "source_dir": "~/.claude",
      "include": [
        "CLAUDE.md",
        "projects/*/memory/**",
        "agents/**",
        "my-custom-dir/**"
      ]
    }
  }
}

Patterns follow rsync include syntax. Parent directories are auto-included for nested paths. Anything not matched is excluded.

Add a new entry to sources

with any name, its config directory, and the files you want backed up. For example, to add Windsurf (Codeium):

{
  "sources": {
    "windsurf": {
      "enabled": true,
      "source_dir": "~/.codeium/windsurf",
      "include": [
        ".windsurfrules",
        "memories/**",
        "config.json",
        "settings.json",
        "prompts/**"
      ]
    }
  }
}

The sync script handles any number of sources. Each gets its own data/<name>/

subdirectory in the backup.

Edit schedule_hour

in config.json

, then re-run bash setup.sh

to update the LaunchAgent.

On macOS, each sync sends a banner notification showing the result. Click it to open your backup's commit history on GitHub.

The notification helper is a minimal Swift app (notifier.swift

) compiled into AiSyncing.app

during setup. It runs as a background process (no dock icon) and uses macOS UserNotifications for proper banner support with click actions.

On first notification, macOS will ask to allow notifications from "AI Syncing". Click Allow.

Falls back to osascript

if the app isn't built (no click-to-open in fallback mode).

Logs: ~/Library/Logs/ai-syncing.log

Clone your backup repo on a new machine and copy the data back:

git clone git@github.com:you/ai-backup.git ~/AiSyncing
rsync -av ~/AiSyncing/data/claude/ ~/.claude/
rsync -av ~/AiSyncing/data/codex/ ~/.codex/
rsync -av ~/AiSyncing/data/gemini/ ~/.gemini/
rsync -av ~/AiSyncing/data/cursor/ ~/.cursor/
bash ~/AiSyncing/setup.sh
bash ~/AiSyncing/uninstall.sh

Stops the LaunchAgent and removes the compiled notification app. Your backup data and config are left in place.

A weekly GitHub Action (Research AI Tools

) monitors official documentation for all supported tools. It fetches doc pages from each tool's repo, hashes the content, and compares against stored baselines. If any docs change or become unreachable, it opens a GitHub issue for review. Can also be triggered manually from the Actions tab.

Setup saves the AiSyncing template as the upstream

remote:

cd ~/AiSyncing
git fetch upstream
git merge upstream/main

MIT

── more in #developer-tools 4 stories · sorted by recency
── more on @aisyncing 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-aisyncing-ba…] indexed:0 read:4min 2026-08-24 ·