agent-rules-sync 1.2.5__tar.gz → 1.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. agent_rules_sync-1.4.3/PKG-INFO +282 -0
  2. agent_rules_sync-1.4.3/README.md +254 -0
  3. agent_rules_sync-1.4.3/agent_rules_sync.egg-info/PKG-INFO +282 -0
  4. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/agent_rules_sync.egg-info/SOURCES.txt +4 -0
  5. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/agent_rules_sync.egg-info/entry_points.txt +1 -0
  6. agent_rules_sync-1.4.3/agent_rules_sync.egg-info/top_level.txt +5 -0
  7. agent_rules_sync-1.4.3/agent_rules_sync.py +1074 -0
  8. agent_rules_sync-1.4.3/agent_settings_sync.py +299 -0
  9. agent_rules_sync-1.4.3/agent_skills_sync.py +340 -0
  10. agent_rules_sync-1.4.3/agent_sync_config.py +238 -0
  11. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/pyproject.toml +5 -4
  12. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/tests/test_agent_rules_sync.py +112 -13
  13. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/tests/test_agent_rules_sync_integration.py +57 -3
  14. agent_rules_sync-1.4.3/tests/test_agent_skills_sync.py +168 -0
  15. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/tests/test_migration.py +8 -16
  16. agent_rules_sync-1.2.5/PKG-INFO +0 -465
  17. agent_rules_sync-1.2.5/README.md +0 -437
  18. agent_rules_sync-1.2.5/agent_rules_sync.egg-info/PKG-INFO +0 -465
  19. agent_rules_sync-1.2.5/agent_rules_sync.egg-info/top_level.txt +0 -2
  20. agent_rules_sync-1.2.5/agent_rules_sync.py +0 -665
  21. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/LICENSE +0 -0
  22. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/agent_rules_sync.egg-info/dependency_links.txt +0 -0
  23. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/install_daemon.py +0 -0
  24. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/setup.cfg +0 -0
  25. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/setup.py +0 -0
  26. {agent_rules_sync-1.2.5 → agent_rules_sync-1.4.3}/tests/test_windows_daemon.py +0 -0
@@ -0,0 +1,282 @@
1
+ Metadata-Version: 2.4
2
+ Name: agent-rules-sync
3
+ Version: 1.4.3
4
+ Summary: Synchronize rules and skills across AI coding assistants (Claude Code, Cursor, Gemini, OpenCode, Codex)
5
+ Author: Agent Rules Sync Contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/dhruv-anand-aintech/agent-rules-sync
8
+ Project-URL: Bug Tracker, https://github.com/dhruv-anand-aintech/agent-rules-sync/issues
9
+ Project-URL: Repository, https://github.com/dhruv-anand-aintech/agent-rules-sync.git
10
+ Project-URL: Changelog, https://github.com/dhruv-anand-aintech/agent-rules-sync/blob/main/CHANGELOG.md
11
+ Keywords: ai,rules,skills,sync,claude,cursor,gemini,opencode,codex
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.8
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Development Status :: 5 - Production/Stable
21
+ Classifier: Intended Audience :: Developers
22
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
23
+ Classifier: Environment :: Console
24
+ Requires-Python: >=3.8
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Dynamic: license-file
28
+
29
+ # agent-sync
30
+
31
+ **Synchronize rules, skills, and settings across Claude Code, Cursor, Gemini, OpenCode, and Codex — in real-time.**
32
+
33
+ Edit rules or skills in any AI agent → they automatically sync to all others. Global Claude settings propagate to configured repos for Claude Code web access.
34
+
35
+ ## Installation
36
+
37
+ Works on **macOS**, **Linux**, and **Windows** (native + WSL).
38
+
39
+ ```bash
40
+ pip install agent-rules-sync
41
+ ```
42
+
43
+ ```bash
44
+ uv pip install agent-rules-sync # faster
45
+ ```
46
+
47
+ The daemon installs and starts automatically as a system service.
48
+
49
+ ## CLI
50
+
51
+ ```bash
52
+ agent-sync # start/ensure daemon is running
53
+ agent-sync sync # one-shot sync: rules + skills + settings
54
+ agent-sync sync rules # sync only CLAUDE.md / rules files
55
+ agent-sync sync skills # sync only skills directories
56
+ agent-sync sync settings # sync only .claude/settings.json + hooks
57
+ agent-sync sync rules skills # multiple scopes
58
+ agent-sync setup # TUI wizard to configure sync directions
59
+ agent-sync status # daemon and sync status
60
+ agent-sync stop # stop daemon
61
+ agent-sync watch # watch in foreground (debugging)
62
+ ```
63
+
64
+ `agent-rules-sync` also works as an alias for backwards compatibility.
65
+
66
+ ## What Gets Synced
67
+
68
+ ### 1. Rules (`CLAUDE.md`, `GEMINI.md`, etc.)
69
+
70
+ Rules sync **bidirectionally** across all agent config files. Changes from any agent propagate to all others within 3 seconds.
71
+
72
+ ```markdown
73
+ # Shared Rules
74
+ - use pydantic for validation ← syncs to all agents
75
+
76
+ ## Claude Code Specific
77
+ - claude-specific rule ← stays in Claude only
78
+ ```
79
+
80
+ Monitored locations:
81
+ | Agent | Path |
82
+ |-------|------|
83
+ | Claude Code | `~/.claude/CLAUDE.md` |
84
+ | Cursor | `~/.cursor/rules/global.mdc` (merged **output**); also reads every `*.md` / `*.mdc` in the **same** `~/.cursor/rules/` dir (subfolders except `imported/`). Strip YAML frontmatter before parsing. |
85
+ | Cursor (legacy) | `~/.cursorrules` plus `<repo>/.cursorrules` for each path in `repo_paths.json` — same body as `global.mdc`; Cursor still loads these ([docs](https://cursor.com/docs/rules)) |
86
+ | Gemini Antigravity | `~/.gemini/GEMINI.md` |
87
+ | OpenCode | `~/.config/opencode/AGENTS.md` |
88
+ | Codex | `~/.codex/AGENTS.md` |
89
+ | + 4 more | `~/.config/agents/AGENTS.md`, `~/.config/AGENTS.md`, `~/.agent/AGENTS.md`, `~/.agent/AGENT.md` |
90
+
91
+ Repo-specific `CLAUDE.md` files can be added via `repo_paths.json` (see [Configuration](#configuration)).
92
+
93
+ ### 2. Skills
94
+
95
+ Skills are directories containing a `SKILL.md` file. Synced across all frameworks:
96
+
97
+ | Framework | Path |
98
+ |-----------|------|
99
+ | Claude Code | `~/.claude/skills/` |
100
+ | Cursor | `~/.cursor/skills/`, `~/.cursor/skills-cursor/` |
101
+ | Codex | `~/.codex/skills/` |
102
+ | Gemini Antigravity | `~/.gemini/antigravity/skills/` |
103
+ | OpenCode | `~/.config/opencode/skills/` |
104
+ | Shared | `~/.agents/skills/` |
105
+
106
+ Newest version wins. Add a skill anywhere and it appears everywhere within 3 seconds.
107
+
108
+ ### 3. Settings & Hooks (Claude Code)
109
+
110
+ Syncs a **portable version** of `~/.claude/settings.json` to configured repos' `.claude/settings.json`:
111
+
112
+ - Strips machine-specific keys (`statusLine`, `spinnerVerbs`, `remote`, etc.)
113
+ - Strips permission rules with absolute paths
114
+ - **Rewrites hook commands** from `~/.claude/hooks/foo.sh` → `.claude/hooks/foo.sh`
115
+ - **Copies hook scripts** into the repo's `.claude/hooks/`
116
+
117
+ This enables full tool permissions and hooks when using **Claude Code web** on those repos.
118
+
119
+ ## Configuration
120
+
121
+ ### Repo Paths
122
+
123
+ Add repos to sync rules, skills, and settings into:
124
+
125
+ ```bash
126
+ ~/.config/agent-rules-sync/repo_paths.json
127
+ ```
128
+
129
+ ```json
130
+ ["~/Code/my-project", "~/Code/another-repo"]
131
+ ```
132
+
133
+ Each repo gets:
134
+ - `<repo>/CLAUDE.md` — synced from global rules
135
+ - `<repo>/.cursorrules` — legacy Cursor rules file; mirrored from the same content as `global.mdc` (optional; Cursor prefers `.cursor/rules/`)
136
+ - `<repo>/.claude/skills/` — synced from master skills
137
+ - `<repo>/.claude/settings.json` — portable settings (auto-generated)
138
+ - `<repo>/.claude/hooks/` — hook scripts (copied from `~/.claude/hooks/`)
139
+
140
+ ### Sync Directions
141
+
142
+ Configure per-component direction via `agent-sync setup` (TUI wizard) or edit directly:
143
+
144
+ ```bash
145
+ ~/.config/agent-rules-sync/sync_config.json
146
+ ```
147
+
148
+ ```json
149
+ {
150
+ "mode": "default",
151
+ "components": {
152
+ "rules": { "direction": "bidirectional", "enabled": true },
153
+ "skills": { "direction": "bidirectional", "enabled": true },
154
+ "settings": { "direction": "push", "enabled": true },
155
+ "hooks": { "direction": "push", "enabled": true }
156
+ }
157
+ }
158
+ ```
159
+
160
+ **Directions:**
161
+
162
+ | Direction | Behavior |
163
+ |-----------|----------|
164
+ | `bidirectional` | Newest version wins, syncs everywhere (default for rules/skills) |
165
+ | `push` | Master → agents only (master is source of truth) |
166
+ | `pull` | Agents → master only (aggregate, don't push back) |
167
+
168
+ Settings and hooks only support `push` (they are generated from global config).
169
+
170
+ ### Settings Strip Rules
171
+
172
+ Customize which keys/paths are stripped when generating portable settings:
173
+
174
+ ```bash
175
+ ~/.config/agent-rules-sync/settings_sync.json
176
+ ```
177
+
178
+ ```json
179
+ {
180
+ "strip_keys": ["statusLine", "spinnerVerbs", "remote"],
181
+ "strip_path_prefixes": ["/Users/", "/home/", "/opt/homebrew/"],
182
+ "sync_hooks": true,
183
+ "hook_script_dir": ".claude/hooks"
184
+ }
185
+ ```
186
+
187
+ ## Setup Wizard
188
+
189
+ Run `agent-sync setup` for a guided TUI to configure sync directions:
190
+
191
+ ```
192
+ ┌──────────────────────────────────────────────────────────┐
193
+ │ agent-sync · Setup Wizard │
194
+ └──────────────────────────────────────────────────────────┘
195
+
196
+ ── Sync Mode ───────────────────────────────────────────
197
+
198
+ default Rules/skills are bidirectional (newest wins).
199
+ Settings/hooks push from global → repos.
200
+
201
+ per_component Configure each component independently.
202
+
203
+ Choice [1-2] (Enter = default):
204
+ ```
205
+
206
+ ## Commands Reference
207
+
208
+ ```bash
209
+ agent-sync sync [rules] [skills] [settings] [all]
210
+ ```
211
+
212
+ | Scope | What it syncs |
213
+ |-------|--------------|
214
+ | `rules` | Rules files (`CLAUDE.md`, `GEMINI.md`, etc.) across all agents |
215
+ | `skills` | Skill directories across all frameworks + configured repos |
216
+ | `settings` | `~/.claude/settings.json` → repo `.claude/settings.json` + hooks |
217
+ | `all` | All of the above (default when no scope given) |
218
+
219
+ ## How It Works
220
+
221
+ ```
222
+ ~/.claude/settings.json ~/.claude/CLAUDE.md ~/.claude/skills/
223
+ │ │ │
224
+ │ strip machine-specific │ merge shared + │ newest
225
+ │ rewrite hook paths │ agent-specific │ version
226
+ ▼ ▼ ▼
227
+ repo/.claude/ all agent CLAUDE.md all framework
228
+ settings.json GEMINI.md AGENTS.md skills/ dirs
229
+ hooks/ (9+ locations) (6+ locations)
230
+ ```
231
+
232
+ Daemon watches all locations every 3 seconds. Changes trigger immediate sync.
233
+
234
+ ## Backups
235
+
236
+ Every file change is backed up with a timestamp:
237
+ ```
238
+ ~/.config/agent-rules-sync/backups/ ← rules backups
239
+ ~/.config/agent-rules-sync/skill_backups/ ← skills backups
240
+ ```
241
+
242
+ Restore any version:
243
+ ```bash
244
+ cp ~/.config/agent-rules-sync/backups/claude_20260125_014532.md ~/.claude/CLAUDE.md
245
+ ```
246
+
247
+ ## Troubleshooting
248
+
249
+ ```bash
250
+ agent-sync status # check daemon + sync status
251
+ tail -f ~/.config/agent-rules-sync/daemon.log # live logs
252
+ agent-sync stop && agent-sync # restart daemon
253
+ agent-sync watch # run in foreground for debugging
254
+ ```
255
+
256
+ ## Uninstall
257
+
258
+ ```bash
259
+ curl -fsSL https://raw.githubusercontent.com/dhruv-anand-aintech/agent-rules-sync/main/uninstall.sh | bash
260
+ ```
261
+
262
+ Or manually:
263
+ ```bash
264
+ agent-sync stop
265
+ pip uninstall -y agent-rules-sync
266
+ rm -rf ~/.config/agent-rules-sync
267
+ ```
268
+
269
+ Agent rule files and repos are not touched.
270
+
271
+ ## Requirements
272
+
273
+ - Python 3.8+
274
+ - macOS, Linux, or Windows
275
+
276
+ ## License
277
+
278
+ MIT — see [LICENSE](LICENSE)
279
+
280
+ ---
281
+
282
+ **Edit anywhere. Sync everywhere.**
@@ -0,0 +1,254 @@
1
+ # agent-sync
2
+
3
+ **Synchronize rules, skills, and settings across Claude Code, Cursor, Gemini, OpenCode, and Codex — in real-time.**
4
+
5
+ Edit rules or skills in any AI agent → they automatically sync to all others. Global Claude settings propagate to configured repos for Claude Code web access.
6
+
7
+ ## Installation
8
+
9
+ Works on **macOS**, **Linux**, and **Windows** (native + WSL).
10
+
11
+ ```bash
12
+ pip install agent-rules-sync
13
+ ```
14
+
15
+ ```bash
16
+ uv pip install agent-rules-sync # faster
17
+ ```
18
+
19
+ The daemon installs and starts automatically as a system service.
20
+
21
+ ## CLI
22
+
23
+ ```bash
24
+ agent-sync # start/ensure daemon is running
25
+ agent-sync sync # one-shot sync: rules + skills + settings
26
+ agent-sync sync rules # sync only CLAUDE.md / rules files
27
+ agent-sync sync skills # sync only skills directories
28
+ agent-sync sync settings # sync only .claude/settings.json + hooks
29
+ agent-sync sync rules skills # multiple scopes
30
+ agent-sync setup # TUI wizard to configure sync directions
31
+ agent-sync status # daemon and sync status
32
+ agent-sync stop # stop daemon
33
+ agent-sync watch # watch in foreground (debugging)
34
+ ```
35
+
36
+ `agent-rules-sync` also works as an alias for backwards compatibility.
37
+
38
+ ## What Gets Synced
39
+
40
+ ### 1. Rules (`CLAUDE.md`, `GEMINI.md`, etc.)
41
+
42
+ Rules sync **bidirectionally** across all agent config files. Changes from any agent propagate to all others within 3 seconds.
43
+
44
+ ```markdown
45
+ # Shared Rules
46
+ - use pydantic for validation ← syncs to all agents
47
+
48
+ ## Claude Code Specific
49
+ - claude-specific rule ← stays in Claude only
50
+ ```
51
+
52
+ Monitored locations:
53
+ | Agent | Path |
54
+ |-------|------|
55
+ | Claude Code | `~/.claude/CLAUDE.md` |
56
+ | Cursor | `~/.cursor/rules/global.mdc` (merged **output**); also reads every `*.md` / `*.mdc` in the **same** `~/.cursor/rules/` dir (subfolders except `imported/`). Strip YAML frontmatter before parsing. |
57
+ | Cursor (legacy) | `~/.cursorrules` plus `<repo>/.cursorrules` for each path in `repo_paths.json` — same body as `global.mdc`; Cursor still loads these ([docs](https://cursor.com/docs/rules)) |
58
+ | Gemini Antigravity | `~/.gemini/GEMINI.md` |
59
+ | OpenCode | `~/.config/opencode/AGENTS.md` |
60
+ | Codex | `~/.codex/AGENTS.md` |
61
+ | + 4 more | `~/.config/agents/AGENTS.md`, `~/.config/AGENTS.md`, `~/.agent/AGENTS.md`, `~/.agent/AGENT.md` |
62
+
63
+ Repo-specific `CLAUDE.md` files can be added via `repo_paths.json` (see [Configuration](#configuration)).
64
+
65
+ ### 2. Skills
66
+
67
+ Skills are directories containing a `SKILL.md` file. Synced across all frameworks:
68
+
69
+ | Framework | Path |
70
+ |-----------|------|
71
+ | Claude Code | `~/.claude/skills/` |
72
+ | Cursor | `~/.cursor/skills/`, `~/.cursor/skills-cursor/` |
73
+ | Codex | `~/.codex/skills/` |
74
+ | Gemini Antigravity | `~/.gemini/antigravity/skills/` |
75
+ | OpenCode | `~/.config/opencode/skills/` |
76
+ | Shared | `~/.agents/skills/` |
77
+
78
+ Newest version wins. Add a skill anywhere and it appears everywhere within 3 seconds.
79
+
80
+ ### 3. Settings & Hooks (Claude Code)
81
+
82
+ Syncs a **portable version** of `~/.claude/settings.json` to configured repos' `.claude/settings.json`:
83
+
84
+ - Strips machine-specific keys (`statusLine`, `spinnerVerbs`, `remote`, etc.)
85
+ - Strips permission rules with absolute paths
86
+ - **Rewrites hook commands** from `~/.claude/hooks/foo.sh` → `.claude/hooks/foo.sh`
87
+ - **Copies hook scripts** into the repo's `.claude/hooks/`
88
+
89
+ This enables full tool permissions and hooks when using **Claude Code web** on those repos.
90
+
91
+ ## Configuration
92
+
93
+ ### Repo Paths
94
+
95
+ Add repos to sync rules, skills, and settings into:
96
+
97
+ ```bash
98
+ ~/.config/agent-rules-sync/repo_paths.json
99
+ ```
100
+
101
+ ```json
102
+ ["~/Code/my-project", "~/Code/another-repo"]
103
+ ```
104
+
105
+ Each repo gets:
106
+ - `<repo>/CLAUDE.md` — synced from global rules
107
+ - `<repo>/.cursorrules` — legacy Cursor rules file; mirrored from the same content as `global.mdc` (optional; Cursor prefers `.cursor/rules/`)
108
+ - `<repo>/.claude/skills/` — synced from master skills
109
+ - `<repo>/.claude/settings.json` — portable settings (auto-generated)
110
+ - `<repo>/.claude/hooks/` — hook scripts (copied from `~/.claude/hooks/`)
111
+
112
+ ### Sync Directions
113
+
114
+ Configure per-component direction via `agent-sync setup` (TUI wizard) or edit directly:
115
+
116
+ ```bash
117
+ ~/.config/agent-rules-sync/sync_config.json
118
+ ```
119
+
120
+ ```json
121
+ {
122
+ "mode": "default",
123
+ "components": {
124
+ "rules": { "direction": "bidirectional", "enabled": true },
125
+ "skills": { "direction": "bidirectional", "enabled": true },
126
+ "settings": { "direction": "push", "enabled": true },
127
+ "hooks": { "direction": "push", "enabled": true }
128
+ }
129
+ }
130
+ ```
131
+
132
+ **Directions:**
133
+
134
+ | Direction | Behavior |
135
+ |-----------|----------|
136
+ | `bidirectional` | Newest version wins, syncs everywhere (default for rules/skills) |
137
+ | `push` | Master → agents only (master is source of truth) |
138
+ | `pull` | Agents → master only (aggregate, don't push back) |
139
+
140
+ Settings and hooks only support `push` (they are generated from global config).
141
+
142
+ ### Settings Strip Rules
143
+
144
+ Customize which keys/paths are stripped when generating portable settings:
145
+
146
+ ```bash
147
+ ~/.config/agent-rules-sync/settings_sync.json
148
+ ```
149
+
150
+ ```json
151
+ {
152
+ "strip_keys": ["statusLine", "spinnerVerbs", "remote"],
153
+ "strip_path_prefixes": ["/Users/", "/home/", "/opt/homebrew/"],
154
+ "sync_hooks": true,
155
+ "hook_script_dir": ".claude/hooks"
156
+ }
157
+ ```
158
+
159
+ ## Setup Wizard
160
+
161
+ Run `agent-sync setup` for a guided TUI to configure sync directions:
162
+
163
+ ```
164
+ ┌──────────────────────────────────────────────────────────┐
165
+ │ agent-sync · Setup Wizard │
166
+ └──────────────────────────────────────────────────────────┘
167
+
168
+ ── Sync Mode ───────────────────────────────────────────
169
+
170
+ default Rules/skills are bidirectional (newest wins).
171
+ Settings/hooks push from global → repos.
172
+
173
+ per_component Configure each component independently.
174
+
175
+ Choice [1-2] (Enter = default):
176
+ ```
177
+
178
+ ## Commands Reference
179
+
180
+ ```bash
181
+ agent-sync sync [rules] [skills] [settings] [all]
182
+ ```
183
+
184
+ | Scope | What it syncs |
185
+ |-------|--------------|
186
+ | `rules` | Rules files (`CLAUDE.md`, `GEMINI.md`, etc.) across all agents |
187
+ | `skills` | Skill directories across all frameworks + configured repos |
188
+ | `settings` | `~/.claude/settings.json` → repo `.claude/settings.json` + hooks |
189
+ | `all` | All of the above (default when no scope given) |
190
+
191
+ ## How It Works
192
+
193
+ ```
194
+ ~/.claude/settings.json ~/.claude/CLAUDE.md ~/.claude/skills/
195
+ │ │ │
196
+ │ strip machine-specific │ merge shared + │ newest
197
+ │ rewrite hook paths │ agent-specific │ version
198
+ ▼ ▼ ▼
199
+ repo/.claude/ all agent CLAUDE.md all framework
200
+ settings.json GEMINI.md AGENTS.md skills/ dirs
201
+ hooks/ (9+ locations) (6+ locations)
202
+ ```
203
+
204
+ Daemon watches all locations every 3 seconds. Changes trigger immediate sync.
205
+
206
+ ## Backups
207
+
208
+ Every file change is backed up with a timestamp:
209
+ ```
210
+ ~/.config/agent-rules-sync/backups/ ← rules backups
211
+ ~/.config/agent-rules-sync/skill_backups/ ← skills backups
212
+ ```
213
+
214
+ Restore any version:
215
+ ```bash
216
+ cp ~/.config/agent-rules-sync/backups/claude_20260125_014532.md ~/.claude/CLAUDE.md
217
+ ```
218
+
219
+ ## Troubleshooting
220
+
221
+ ```bash
222
+ agent-sync status # check daemon + sync status
223
+ tail -f ~/.config/agent-rules-sync/daemon.log # live logs
224
+ agent-sync stop && agent-sync # restart daemon
225
+ agent-sync watch # run in foreground for debugging
226
+ ```
227
+
228
+ ## Uninstall
229
+
230
+ ```bash
231
+ curl -fsSL https://raw.githubusercontent.com/dhruv-anand-aintech/agent-rules-sync/main/uninstall.sh | bash
232
+ ```
233
+
234
+ Or manually:
235
+ ```bash
236
+ agent-sync stop
237
+ pip uninstall -y agent-rules-sync
238
+ rm -rf ~/.config/agent-rules-sync
239
+ ```
240
+
241
+ Agent rule files and repos are not touched.
242
+
243
+ ## Requirements
244
+
245
+ - Python 3.8+
246
+ - macOS, Linux, or Windows
247
+
248
+ ## License
249
+
250
+ MIT — see [LICENSE](LICENSE)
251
+
252
+ ---
253
+
254
+ **Edit anywhere. Sync everywhere.**