You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,7 @@ Centralized management tool for AI configuration files across Git repositories a
14
14
- A **central store** (a separate git repo you choose) holds all AI config files, organized by repository and service
15
15
- A **sync engine** watches for changes on both sides and syncs automatically using **git 3-way merge** — non-conflicting changes are auto-merged
16
16
-**AI service configs** (e.g., Claude Code's `~/.claude/`) can be synced with predefined file patterns — no manual path browsing needed
17
+
-**Multi-machine support** — each machine gets a unique identity; a git-tracked `machines.json` maps repo paths per machine, so the same store works across machines with different directory layouts. Repos are auto-linked on startup
17
18
- A **web UI** lets you manage repos, services, edit files, and resolve conflicts
18
19
- AI files are automatically **git-ignored** and **removed from git tracking** in target repos
19
20
-**App code and user data are fully separated** — update the tool without affecting your data
On the setup screen, point to your existing data directory (clone your store repo first if needed). Attach your locally-cloned repos via the UI — files sync automatically.
79
+
On the setup screen, point to your existing data directory (clone your store repo first if needed).
80
+
81
+
The app will automatically assign a machine identity and **auto-link** any repos that already have a path mapping for this machine in `machines.json`. Repos that can't be auto-linked appear as **Unlinked Repositories** on the dashboard — click **Link** to map them to local paths, **Auto-link All** to link everything at once, or the **trash icon** to remove repos you no longer need.
Copy file name to clipboardExpand all lines: docs/changelog.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,14 @@
1
1
# Changelog
2
2
3
+
## v1.6.0 - Multi-machine support
4
+
5
+
-**New:** Multi-machine support — each machine gets a unique ID and name, stored in local config (`~/.ai-sync/config.json`)
6
+
-**New:** Git-tracked `machines.json` in the store repo maps repo/service paths per machine, enabling cross-machine sync with different absolute paths
7
+
-**New:** Auto-link on startup — repos with valid path mappings for the current machine are automatically registered in the local database
8
+
-**New:** Unlinked repos detection — dashboard shows store repos that exist but aren't linked on the current machine, with manual link and auto-link options
9
+
-**New:** Machine name displayed in the footer alongside the data directory
10
+
-**New:** Settings "Machine" tab — edit machine name, view machine ID, see all known machines
11
+
3
12
## v1.5.1
4
13
5
14
-**New:** Right-click "Delete" on file tree — deletes files/folders from both store and target repo, with empty parent directory cleanup
Copy file name to clipboardExpand all lines: docs/how-to.md
+34-2Lines changed: 34 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -118,11 +118,12 @@ The **Templates** page lets you define default AI config files for new repositor
118
118
119
119
## Configuring Settings
120
120
121
-
The **Settings** page has three tabs:
121
+
The **Settings** page has four tabs:
122
122
123
123
-**General** — Sync interval, watch debounce, auto sync, and auto-commit options
124
124
-**AI File Patterns** — Glob patterns that detect AI config files (add, remove, or toggle)
125
125
-**Ignore Patterns** — Glob patterns to exclude files from sync (e.g., `.DS_Store`, `node_modules/**`). Use the **Clean** button to remove already-tracked files that match ignore patterns
126
+
-**Machine** — View/edit machine name, copy machine ID, and see all known machines that share this store
126
127
127
128
### Per-Repository Settings
128
129
@@ -137,7 +138,38 @@ If your data directory is connected to a remote git repository, use the **Push c
137
138
1. Clone this tool repository then run `pnpm install && pnpm build && pnpm start`, the app will start at [http://localhost:2703](http://localhost:2703) in your browser.
138
139
2. Clone your store repository (data directory)
139
140
3. On the setup screen, point to the cloned store directory
140
-
4. Add your locally-cloned repos via the UI — files sync automatically
141
+
4. The app will automatically:
142
+
- Assign a unique machine ID and name (based on hostname)
143
+
- Register this machine in `machines.json`
144
+
- Auto-link any repos that have known paths for this machine
145
+
5. Repos that couldn't be auto-linked will appear as **Unlinked Repositories** on the dashboard — click **Link** to map them to local paths, or **Auto-link All** if paths are already mapped from another machine
146
+
6. To remove an unlinked repo you no longer need, click the **trash icon** on its card to delete it from the store
147
+
148
+
## Multi-Machine Workflow
149
+
150
+
AI Sync supports using the same store across multiple machines, even when repos live at different paths on each machine.
151
+
152
+
### How It Works
153
+
154
+
- Each machine gets a **unique ID** (UUID) and a **name** (defaults to your hostname), stored locally in `~/.ai-sync/config.json`
155
+
- A **`machines.json`** file in the store repo tracks which machine has which repo at which local path
156
+
- When you add a repo on Machine A, the path mapping is saved in `machines.json`. When Machine B pulls the store, it can use that mapping to auto-link or manually link the repo
157
+
158
+
### Managing Unlinked Repos
159
+
160
+
When the store contains repos that aren't linked on the current machine, they appear in the **Unlinked Repositories** section on the dashboard:
161
+
162
+
-**Auto-link All** — Automatically link all repos that have a valid path mapping for this machine
163
+
-**Link** — Manually specify the local path for a specific repo
164
+
-**Delete** — Remove the repo from the store entirely (trash icon on each card)
165
+
166
+
### Machine Settings
167
+
168
+
Go to **Settings → Machine** to:
169
+
170
+
-**Edit machine name** — Change the display name for this machine
171
+
-**View machine ID** — Copy the unique identifier for debugging
172
+
-**See all machines** — List every machine that has ever connected to this store, with last-seen dates
Copy file name to clipboardExpand all lines: docs/intro.md
+19-6Lines changed: 19 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,11 +27,12 @@ AI Sync provides a single-source-of-truth approach:
27
27
1.**Central Store** — All AI config files are stored in a user-chosen directory (a separate git repo)
28
28
2.**Automatic Sync** — A background service watches for file changes and syncs bidirectionally between the store and target repositories
29
29
3.**AI Service Configs** — Sync local AI service settings (e.g., `~/.claude/` for Claude Code) with predefined file patterns — no manual path browsing needed
30
-
4.**Web Admin UI** — A local web interface for managing repositories, editing files, resolving conflicts, and monitoring sync status
31
-
5.**Portable** — Clone this tool on any machine, point it to your store directory, attach your repositories, and all AI configs sync automatically
32
-
6.**Separated Data** — App code and user data live in different directories — update the tool without affecting your data
33
-
7.**Symbolic Link Support** — Symlinks are properly detected, tracked, and synced between store and target repositories
34
-
8.**Ignore Patterns** — Configurable glob patterns to exclude unwanted files (e.g., `.DS_Store`, `node_modules/**`) from sync
30
+
4.**Multi-Machine Support** — Each machine gets a unique identity. A git-tracked `machines.json` maps repo paths per machine, so the same store works across machines with different directory structures. Repos are auto-linked on startup when valid path mappings exist
31
+
5.**Web Admin UI** — A local web interface for managing repositories, editing files, resolving conflicts, and monitoring sync status
32
+
6.**Portable** — Clone this tool on any machine, point it to your store directory, and repos with known paths are auto-linked. Unlinked repos can be manually linked via the dashboard
33
+
7.**Separated Data** — App code and user data live in different directories — update the tool without affecting your data
34
+
8.**Symbolic Link Support** — Symlinks are properly detected, tracked, and synced between store and target repositories
35
+
9.**Ignore Patterns** — Configurable glob patterns to exclude unwanted files (e.g., `.DS_Store`, `node_modules/**`) from sync
35
36
36
37
## How Sync Works
37
38
@@ -57,6 +58,18 @@ When both sides changed:
57
58
58
59
A checksum fast-path ensures git is only invoked when files actually differ, keeping the common case fast.
59
60
61
+
## Multi-Machine Support
62
+
63
+
When multiple machines share the same store repository (data directory) via git, each machine may have different absolute paths for the same repository (e.g., `/Users/thi/git/project` on a Mac vs `/home/thi/code/project` on Linux).
64
+
65
+
AI Sync handles this with:
66
+
67
+
-**Machine Identity** — Each machine gets a unique UUID and a human-readable name (defaults to hostname), stored in the local config (`~/.ai-sync/config.json`)
68
+
-**`machines.json`** — A git-tracked file in the store repo that maps each repo/service to each machine's local path. All machines see each other's mappings through git sync
69
+
-**Auto-linking** — On startup, if the store contains repos with known paths for the current machine, they are automatically registered in the local database and start syncing
70
+
-**Unlinked repos** — The dashboard shows store repos that exist but aren't linked on the current machine, with options to link manually, auto-link, or delete from the store
71
+
-**Machine settings** — View and edit the machine name, see the machine ID, and list all known machines in the Settings page
72
+
60
73
## Architecture Overview
61
74
62
75
```
@@ -75,7 +88,7 @@ A checksum fast-path ensures git is only invoked when files actually differ, kee
0 commit comments