sync-agents-settings 0.1.4 â 0.2.1
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.
- package/README.md +64 -3
- package/dist/cli.js +74 -1
- package/dist/cli.js.map +1 -1
- package/dist/instructions.d.ts +46 -0
- package/dist/instructions.js +209 -0
- package/dist/instructions.js.map +1 -0
- package/dist/paths.d.ts +5 -0
- package/dist/paths.js +6 -0
- package/dist/paths.js.map +1 -1
- package/dist/prompt.d.ts +6 -0
- package/dist/prompt.js +28 -0
- package/dist/prompt.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
[](https://prettier.io/)
|
|
12
12
|
[](https://github.com/Leoyang183/sync-agents-settings/actions/workflows/ci.yml)
|
|
13
13
|
|
|
14
|
-
Sync MCP server configurations from **Claude Code** to **Gemini CLI**, **Codex CLI**, **OpenCode**, **Kiro CLI**, and **Cursor**.
|
|
14
|
+
Sync MCP server configurations and instruction files (CLAUDE.md) from **Claude Code** to **Gemini CLI**, **Codex CLI**, **OpenCode**, **Kiro CLI**, and **Cursor**.
|
|
15
15
|
|
|
16
16
|
**README translations:** [đšđŧ įšéĢ䏿](docs/i18n/README.zh-tw.md) | [đ¨đŗ įŽäŊ䏿](docs/i18n/README.zh-cn.md) | [đ¯đĩ æĨæŦčĒ](docs/i18n/README.ja.md) | [đ°đˇ íęĩė´](docs/i18n/README.ko.md)
|
|
17
17
|
|
|
18
18
|
## Why
|
|
19
19
|
|
|
20
|
-
If you use Claude Code as your primary AI coding agent but also switch between other agents (Gemini CLI, Codex CLI, OpenCode, Kiro, Cursor) to take advantage of their free tiers or different models, you know the pain â every tool has its own MCP config format, and setting them up one by one is tedious.
|
|
20
|
+
If you use Claude Code as your primary AI coding agent but also switch between other agents (Gemini CLI, Codex CLI, OpenCode, Kiro, Cursor) to take advantage of their free tiers or different models, you know the pain â every tool has its own MCP config format, and setting them up one by one is tedious. Same goes for instruction files â CLAUDE.md, GEMINI.md, AGENTS.md all need the same content but in different formats.
|
|
21
21
|
|
|
22
|
-
This tool lets you configure MCP servers once in Claude Code, then sync everywhere with a single command.
|
|
22
|
+
This tool lets you configure MCP servers and write instructions once in Claude Code, then sync everywhere with a single command.
|
|
23
23
|
|
|
24
24
|
## Quick Start
|
|
25
25
|
|
|
@@ -34,6 +34,9 @@ npx sync-agents-settings sync --dry-run
|
|
|
34
34
|
|
|
35
35
|
# Sync to all targets (with automatic backup)
|
|
36
36
|
npx sync-agents-settings sync
|
|
37
|
+
|
|
38
|
+
# Sync CLAUDE.md instructions to all targets
|
|
39
|
+
npx sync-agents-settings sync-instructions
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
## Install (optional)
|
|
@@ -71,6 +74,24 @@ sync-agents sync --no-backup
|
|
|
71
74
|
|
|
72
75
|
# Verbose output
|
|
73
76
|
sync-agents sync -v
|
|
77
|
+
|
|
78
|
+
# Sync instruction files (CLAUDE.md â GEMINI.md / AGENTS.md / Kiro steering / Cursor rules)
|
|
79
|
+
sync-agents sync-instructions
|
|
80
|
+
|
|
81
|
+
# Sync only global instructions
|
|
82
|
+
sync-agents sync-instructions --global
|
|
83
|
+
|
|
84
|
+
# Sync only project-level instructions
|
|
85
|
+
sync-agents sync-instructions --local
|
|
86
|
+
|
|
87
|
+
# Sync to specific targets
|
|
88
|
+
sync-agents sync-instructions --target gemini codex
|
|
89
|
+
|
|
90
|
+
# Auto-overwrite without prompts (for CI)
|
|
91
|
+
sync-agents sync-instructions --on-conflict overwrite
|
|
92
|
+
|
|
93
|
+
# Preview instruction sync
|
|
94
|
+
sync-agents sync-instructions --dry-run
|
|
74
95
|
```
|
|
75
96
|
|
|
76
97
|
### Development
|
|
@@ -106,6 +127,33 @@ pnpm test # Run tests
|
|
|
106
127
|
| **Kiro Writer** | Same format as Claude, `${VAR:-default}` â expanded |
|
|
107
128
|
| **Cursor Writer** | Same format as Claude, `${VAR:-default}` â expanded |
|
|
108
129
|
|
|
130
|
+
### Instruction Sync (`sync-instructions`)
|
|
131
|
+
|
|
132
|
+
Syncs CLAUDE.md instruction files to each target's native format:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
âââ ~/.gemini/GEMINI.md (plain copy)
|
|
136
|
+
âââ ~/.codex/AGENTS.md (plain copy)
|
|
137
|
+
~/.claude/CLAUDE.md ââ filter @imports âââŧââ ~/.config/opencode/AGENTS.md (plain copy)
|
|
138
|
+
âââ ~/.kiro/steering/claude-instructions.md (+ inclusion: always)
|
|
139
|
+
âââ â Cursor global not supported (SQLite)
|
|
140
|
+
|
|
141
|
+
âââ ./GEMINI.md (plain copy)
|
|
142
|
+
âââ ./AGENTS.md (Codex + OpenCode share)
|
|
143
|
+
./CLAUDE.md âââââââââââ filter @imports âââŧââ .kiro/steering/claude-instructions.md (+ inclusion: always)
|
|
144
|
+
âââ .cursor/rules/claude-instructions.mdc (+ alwaysApply: true)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
| Target | Global | Local | Format Transform |
|
|
148
|
+
|--------|--------|-------|------------------|
|
|
149
|
+
| Gemini | `~/.gemini/GEMINI.md` | `./GEMINI.md` | Plain copy (filter `@import` lines) |
|
|
150
|
+
| Codex | `~/.codex/AGENTS.md` | `./AGENTS.md` | Plain copy (filter `@import` lines) |
|
|
151
|
+
| OpenCode | `~/.config/opencode/AGENTS.md` | `./AGENTS.md` (shared with Codex) | Plain copy (filter `@import` lines) |
|
|
152
|
+
| Kiro | `~/.kiro/steering/claude-instructions.md` | `.kiro/steering/claude-instructions.md` | Add `inclusion: always` frontmatter |
|
|
153
|
+
| Cursor | Not supported (SQLite) | `.cursor/rules/claude-instructions.mdc` | Add `alwaysApply: true` frontmatter |
|
|
154
|
+
|
|
155
|
+
When a target file already exists, you'll be prompted to choose: **overwrite**, **append** (keep existing + add CLAUDE.md below), or **skip**. Use `--on-conflict overwrite|append|skip` for non-interactive mode.
|
|
156
|
+
|
|
109
157
|
**Safety mechanisms:**
|
|
110
158
|
- Existing servers are never overwritten (idempotent, safe to re-run)
|
|
111
159
|
- Automatic backup to `~/.sync-agents-backup/` by default (`--no-backup` to skip)
|
|
@@ -266,6 +314,8 @@ Use `--no-backup` to skip. Target directories that don't exist (CLI not installe
|
|
|
266
314
|
|
|
267
315
|
## Config File Locations
|
|
268
316
|
|
|
317
|
+
### MCP Settings
|
|
318
|
+
|
|
269
319
|
| Tool | Config Path | Format |
|
|
270
320
|
|------|-----------|--------|
|
|
271
321
|
| Claude Code (user MCP) | `~/.claude.json` | JSON |
|
|
@@ -281,6 +331,17 @@ Use `--no-backup` to skip. Target directories that don't exist (CLI not installe
|
|
|
281
331
|
| Cursor (global) | `~/.cursor/mcp.json` | JSON |
|
|
282
332
|
| Cursor (project) | `.cursor/mcp.json` in project root | JSON |
|
|
283
333
|
|
|
334
|
+
### Instruction Files
|
|
335
|
+
|
|
336
|
+
| Tool | Global Path | Project Path | Format |
|
|
337
|
+
|------|------------|-------------|--------|
|
|
338
|
+
| Claude Code | `~/.claude/CLAUDE.md` | `./CLAUDE.md` | Markdown |
|
|
339
|
+
| Gemini CLI | `~/.gemini/GEMINI.md` | `./GEMINI.md` | Markdown |
|
|
340
|
+
| Codex CLI | `~/.codex/AGENTS.md` | `./AGENTS.md` | Markdown |
|
|
341
|
+
| OpenCode | `~/.config/opencode/AGENTS.md` | `./AGENTS.md` | Markdown |
|
|
342
|
+
| Kiro CLI | `~/.kiro/steering/claude-instructions.md` | `.kiro/steering/claude-instructions.md` | Markdown + frontmatter |
|
|
343
|
+
| Cursor | Not supported (SQLite) | `.cursor/rules/claude-instructions.mdc` | MDC (Markdown + frontmatter) |
|
|
344
|
+
|
|
284
345
|
## Limitations
|
|
285
346
|
|
|
286
347
|
- **OAuth servers** (e.g. Slack with `oauth.clientId`) are synced as URL-only â you'll need to authenticate manually in each CLI
|
package/dist/cli.js
CHANGED
|
@@ -9,11 +9,12 @@ import { writeToKiro } from "./writers/kiro.js";
|
|
|
9
9
|
import { writeToCursor } from "./writers/cursor.js";
|
|
10
10
|
import { createBackup, getFilesToBackup } from "./backup.js";
|
|
11
11
|
import { PATHS } from "./paths.js";
|
|
12
|
+
import { syncInstructions, getGlobalSyncPairs, getLocalSyncPairs, getUnsupportedGlobalTargets, } from "./instructions.js";
|
|
12
13
|
const program = new Command();
|
|
13
14
|
program
|
|
14
15
|
.name("sync-agents")
|
|
15
16
|
.description("Sync Claude Code MCP settings to Gemini CLI / Codex CLI / OpenCode / Kiro CLI")
|
|
16
|
-
.version("0.1
|
|
17
|
+
.version("0.2.1");
|
|
17
18
|
program
|
|
18
19
|
.command("sync")
|
|
19
20
|
.description("Sync MCP settings from Claude Code to other CLIs")
|
|
@@ -123,6 +124,78 @@ program
|
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
});
|
|
127
|
+
program
|
|
128
|
+
.command("sync-instructions")
|
|
129
|
+
.description("Sync CLAUDE.md instruction files to other AI agent formats")
|
|
130
|
+
.option("-t, --target <targets...>", "sync targets (gemini, codex, opencode, kiro, cursor)", [
|
|
131
|
+
"gemini",
|
|
132
|
+
"codex",
|
|
133
|
+
"opencode",
|
|
134
|
+
"kiro",
|
|
135
|
+
"cursor",
|
|
136
|
+
])
|
|
137
|
+
.option("--global", "sync global config (~/.claude/CLAUDE.md)", false)
|
|
138
|
+
.option("--local", "sync project-level CLAUDE.md in current directory", false)
|
|
139
|
+
.option("--dry-run", "preview mode, no files will be written", false)
|
|
140
|
+
.option("--no-backup", "skip backup")
|
|
141
|
+
.option("--on-conflict <action>", "action when target exists: overwrite, append, skip (skips interactive prompt)")
|
|
142
|
+
.action(async (opts) => {
|
|
143
|
+
const targets = opts.target;
|
|
144
|
+
const syncGlobal = opts.global;
|
|
145
|
+
const syncLocal = opts.local;
|
|
146
|
+
const dryRun = opts.dryRun;
|
|
147
|
+
const skipBackup = !opts.backup;
|
|
148
|
+
const onConflict = opts.onConflict;
|
|
149
|
+
// Default: sync both if neither flag is set
|
|
150
|
+
const doGlobal = syncGlobal || (!syncGlobal && !syncLocal);
|
|
151
|
+
const doLocal = syncLocal || (!syncGlobal && !syncLocal);
|
|
152
|
+
if (dryRun) {
|
|
153
|
+
console.log("đ Dry-run mode â no files will be written\n");
|
|
154
|
+
}
|
|
155
|
+
// Global sync
|
|
156
|
+
if (doGlobal) {
|
|
157
|
+
console.log("đ Syncing global instructions (~/.claude/CLAUDE.md)...\n");
|
|
158
|
+
const unsupported = getUnsupportedGlobalTargets(targets);
|
|
159
|
+
for (const msg of unsupported) {
|
|
160
|
+
console.log(` â ${msg}`);
|
|
161
|
+
}
|
|
162
|
+
const pairs = getGlobalSyncPairs(targets);
|
|
163
|
+
backupTargets(pairs, skipBackup, dryRun);
|
|
164
|
+
const result = await syncInstructions(pairs, { dryRun, force: onConflict });
|
|
165
|
+
printInstructionsResult(result);
|
|
166
|
+
}
|
|
167
|
+
// Local sync
|
|
168
|
+
if (doLocal) {
|
|
169
|
+
console.log("đ Syncing local instructions (./CLAUDE.md)...\n");
|
|
170
|
+
const pairs = getLocalSyncPairs(targets, process.cwd());
|
|
171
|
+
backupTargets(pairs, skipBackup, dryRun);
|
|
172
|
+
const result = await syncInstructions(pairs, { dryRun, force: onConflict });
|
|
173
|
+
printInstructionsResult(result);
|
|
174
|
+
}
|
|
175
|
+
console.log("â
Instructions sync complete!");
|
|
176
|
+
});
|
|
177
|
+
function backupTargets(pairs, skipBackup, dryRun) {
|
|
178
|
+
if (skipBackup || dryRun)
|
|
179
|
+
return;
|
|
180
|
+
const filesToBackup = pairs.map((p) => p.target).filter((f) => existsSync(f));
|
|
181
|
+
if (filesToBackup.length > 0) {
|
|
182
|
+
console.log("đž Backing up existing files...");
|
|
183
|
+
const backupDir = createBackup(filesToBackup);
|
|
184
|
+
console.log(` Backup directory: ${backupDir}\n`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function printInstructionsResult(result) {
|
|
188
|
+
if (result.synced.length > 0) {
|
|
189
|
+
console.log(` â
Synced: ${result.synced.join(", ")}`);
|
|
190
|
+
}
|
|
191
|
+
if (result.appended.length > 0) {
|
|
192
|
+
console.log(` đ Appended: ${result.appended.join(", ")}`);
|
|
193
|
+
}
|
|
194
|
+
if (result.skipped.length > 0) {
|
|
195
|
+
console.log(` â Skipped: ${result.skipped.join(", ")}`);
|
|
196
|
+
}
|
|
197
|
+
console.log();
|
|
198
|
+
}
|
|
126
199
|
function readExistingServerNames(configPath, key = "mcpServers") {
|
|
127
200
|
try {
|
|
128
201
|
if (!existsSync(configPath)) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ConflictAction } from "./prompt.js";
|
|
2
|
+
export type InstructionsTarget = "gemini" | "codex" | "opencode" | "kiro" | "cursor";
|
|
3
|
+
interface SyncPair {
|
|
4
|
+
source: string;
|
|
5
|
+
target: string;
|
|
6
|
+
targetLabel: string;
|
|
7
|
+
/** Optional content transform before writing (e.g. Kiro frontmatter injection) */
|
|
8
|
+
transform?: (content: string) => string;
|
|
9
|
+
}
|
|
10
|
+
/** Wrap content with Kiro steering frontmatter (inclusion: always). */
|
|
11
|
+
export declare function wrapForKiro(content: string): string;
|
|
12
|
+
/** Wrap content with Cursor .mdc frontmatter (alwaysApply: true). */
|
|
13
|
+
export declare function wrapForCursor(content: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Build sourceâtarget pairs for global instruction sync.
|
|
16
|
+
* Note: Cursor global rules are stored in SQLite â not supported.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getGlobalSyncPairs(targets: InstructionsTarget[]): SyncPair[];
|
|
19
|
+
/**
|
|
20
|
+
* Returns targets that don't support global instruction sync.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getUnsupportedGlobalTargets(targets: InstructionsTarget[]): string[];
|
|
23
|
+
/**
|
|
24
|
+
* Build sourceâtarget pairs for local (project-level) instruction sync.
|
|
25
|
+
* Looks for CLAUDE.md in the current working directory.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLocalSyncPairs(targets: InstructionsTarget[], cwd: string): SyncPair[];
|
|
28
|
+
/**
|
|
29
|
+
* Filter out Claude-specific syntax that other tools won't understand.
|
|
30
|
+
* - Removes `@filepath` import lines (lines that are just `@some/path.md`)
|
|
31
|
+
* - Keeps `@mentions` inside sentences (those are fine as plain text)
|
|
32
|
+
*/
|
|
33
|
+
export declare function filterClaudeSpecificSyntax(content: string): string;
|
|
34
|
+
export interface SyncInstructionsResult {
|
|
35
|
+
synced: string[];
|
|
36
|
+
skipped: string[];
|
|
37
|
+
appended: string[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Sync instruction files from CLAUDE.md to target agent files.
|
|
41
|
+
*/
|
|
42
|
+
export declare function syncInstructions(pairs: SyncPair[], options: {
|
|
43
|
+
dryRun: boolean;
|
|
44
|
+
force?: ConflictAction;
|
|
45
|
+
}): Promise<SyncInstructionsResult>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "node:fs";
|
|
2
|
+
import { dirname, resolve } from "node:path";
|
|
3
|
+
import { PATHS } from "./paths.js";
|
|
4
|
+
import { askConflictAction } from "./prompt.js";
|
|
5
|
+
/**
|
|
6
|
+
* Strip existing YAML frontmatter (--- ... ---) from content.
|
|
7
|
+
* Returns the body without the frontmatter block.
|
|
8
|
+
*/
|
|
9
|
+
function stripExistingFrontmatter(content) {
|
|
10
|
+
if (content.trimStart().startsWith("---")) {
|
|
11
|
+
const lines = content.trimStart().split("\n");
|
|
12
|
+
const endIdx = lines.indexOf("---", 1);
|
|
13
|
+
if (endIdx !== -1) {
|
|
14
|
+
return lines
|
|
15
|
+
.slice(endIdx + 1)
|
|
16
|
+
.join("\n")
|
|
17
|
+
.trimStart();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return content;
|
|
21
|
+
}
|
|
22
|
+
/** Wrap content with Kiro steering frontmatter (inclusion: always). */
|
|
23
|
+
export function wrapForKiro(content) {
|
|
24
|
+
return "---\ninclusion: always\n---\n\n" + stripExistingFrontmatter(content);
|
|
25
|
+
}
|
|
26
|
+
/** Wrap content with Cursor .mdc frontmatter (alwaysApply: true). */
|
|
27
|
+
export function wrapForCursor(content) {
|
|
28
|
+
return ('---\ndescription: "Project instructions synced from CLAUDE.md"\nalwaysApply: true\n---\n\n' +
|
|
29
|
+
stripExistingFrontmatter(content));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Build sourceâtarget pairs for global instruction sync.
|
|
33
|
+
* Note: Cursor global rules are stored in SQLite â not supported.
|
|
34
|
+
*/
|
|
35
|
+
export function getGlobalSyncPairs(targets) {
|
|
36
|
+
const pairs = [];
|
|
37
|
+
for (const target of targets) {
|
|
38
|
+
if (target === "gemini") {
|
|
39
|
+
pairs.push({
|
|
40
|
+
source: PATHS.claudeMdGlobal,
|
|
41
|
+
target: PATHS.geminiMdGlobal,
|
|
42
|
+
targetLabel: "Gemini CLI (~/.gemini/GEMINI.md)",
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else if (target === "codex") {
|
|
46
|
+
pairs.push({
|
|
47
|
+
source: PATHS.claudeMdGlobal,
|
|
48
|
+
target: PATHS.codexMdGlobal,
|
|
49
|
+
targetLabel: "Codex CLI (~/.codex/AGENTS.md)",
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else if (target === "opencode") {
|
|
53
|
+
pairs.push({
|
|
54
|
+
source: PATHS.claudeMdGlobal,
|
|
55
|
+
target: PATHS.openCodeMdGlobal,
|
|
56
|
+
targetLabel: "OpenCode (~/.config/opencode/AGENTS.md)",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
else if (target === "kiro") {
|
|
60
|
+
pairs.push({
|
|
61
|
+
source: PATHS.claudeMdGlobal,
|
|
62
|
+
target: PATHS.kiroSteeringGlobal,
|
|
63
|
+
targetLabel: "Kiro CLI (~/.kiro/steering/claude-instructions.md)",
|
|
64
|
+
transform: wrapForKiro,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Cursor global rules are stored in SQLite, not supported for global sync
|
|
68
|
+
}
|
|
69
|
+
return pairs;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns targets that don't support global instruction sync.
|
|
73
|
+
*/
|
|
74
|
+
export function getUnsupportedGlobalTargets(targets) {
|
|
75
|
+
const unsupported = [];
|
|
76
|
+
if (targets.includes("cursor")) {
|
|
77
|
+
unsupported.push("Cursor (global rules stored in SQLite, use Cursor Settings UI instead)");
|
|
78
|
+
}
|
|
79
|
+
return unsupported;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Build sourceâtarget pairs for local (project-level) instruction sync.
|
|
83
|
+
* Looks for CLAUDE.md in the current working directory.
|
|
84
|
+
*/
|
|
85
|
+
export function getLocalSyncPairs(targets, cwd) {
|
|
86
|
+
const pairs = [];
|
|
87
|
+
const source = resolve(cwd, "CLAUDE.md");
|
|
88
|
+
// Track targets that share the same output path to avoid duplicate writes
|
|
89
|
+
const seenPaths = new Set();
|
|
90
|
+
for (const target of targets) {
|
|
91
|
+
if (target === "gemini") {
|
|
92
|
+
const targetPath = resolve(cwd, "GEMINI.md");
|
|
93
|
+
pairs.push({ source, target: targetPath, targetLabel: "Gemini CLI (./GEMINI.md)" });
|
|
94
|
+
seenPaths.add(targetPath);
|
|
95
|
+
}
|
|
96
|
+
else if (target === "codex") {
|
|
97
|
+
const targetPath = resolve(cwd, "AGENTS.md");
|
|
98
|
+
if (!seenPaths.has(targetPath)) {
|
|
99
|
+
pairs.push({ source, target: targetPath, targetLabel: "Codex CLI (./AGENTS.md)" });
|
|
100
|
+
seenPaths.add(targetPath);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (target === "opencode") {
|
|
104
|
+
// OpenCode reads ./AGENTS.md â same path as Codex, skip if already added
|
|
105
|
+
const targetPath = resolve(cwd, "AGENTS.md");
|
|
106
|
+
if (!seenPaths.has(targetPath)) {
|
|
107
|
+
pairs.push({ source, target: targetPath, targetLabel: "OpenCode (./AGENTS.md)" });
|
|
108
|
+
seenPaths.add(targetPath);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else if (target === "kiro") {
|
|
112
|
+
pairs.push({
|
|
113
|
+
source,
|
|
114
|
+
target: resolve(cwd, ".kiro", "steering", "claude-instructions.md"),
|
|
115
|
+
targetLabel: "Kiro CLI (.kiro/steering/claude-instructions.md)",
|
|
116
|
+
transform: wrapForKiro,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
else if (target === "cursor") {
|
|
120
|
+
pairs.push({
|
|
121
|
+
source,
|
|
122
|
+
target: resolve(cwd, ".cursor", "rules", "claude-instructions.mdc"),
|
|
123
|
+
targetLabel: "Cursor (.cursor/rules/claude-instructions.mdc)",
|
|
124
|
+
transform: wrapForCursor,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return pairs;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Filter out Claude-specific syntax that other tools won't understand.
|
|
132
|
+
* - Removes `@filepath` import lines (lines that are just `@some/path.md`)
|
|
133
|
+
* - Keeps `@mentions` inside sentences (those are fine as plain text)
|
|
134
|
+
*/
|
|
135
|
+
export function filterClaudeSpecificSyntax(content) {
|
|
136
|
+
return content
|
|
137
|
+
.split("\n")
|
|
138
|
+
.filter((line) => {
|
|
139
|
+
const trimmed = line.trim();
|
|
140
|
+
// Remove standalone @import lines: lines that are just "@path/to/file.md"
|
|
141
|
+
if (/^@[\w.~\-/\\]+\.md\s*$/.test(trimmed)) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
return true;
|
|
145
|
+
})
|
|
146
|
+
.join("\n");
|
|
147
|
+
}
|
|
148
|
+
const APPEND_SEPARATOR = "\n\n---\n\n<!-- Synced from CLAUDE.md by sync-agents-settings -->\n\n";
|
|
149
|
+
/**
|
|
150
|
+
* Sync instruction files from CLAUDE.md to target agent files.
|
|
151
|
+
*/
|
|
152
|
+
export async function syncInstructions(pairs, options) {
|
|
153
|
+
const result = { synced: [], skipped: [], appended: [] };
|
|
154
|
+
// Cache filtered source content to avoid re-reading the same file per target
|
|
155
|
+
const sourceCache = new Map();
|
|
156
|
+
for (const pair of pairs) {
|
|
157
|
+
if (!sourceCache.has(pair.source)) {
|
|
158
|
+
if (!existsSync(pair.source)) {
|
|
159
|
+
sourceCache.set(pair.source, null);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
const raw = readFileSync(pair.source, "utf-8");
|
|
163
|
+
sourceCache.set(pair.source, raw.trim() ? filterClaudeSpecificSyntax(raw) : null);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const filtered = sourceCache.get(pair.source);
|
|
167
|
+
if (filtered === null || filtered === undefined) {
|
|
168
|
+
const reason = !existsSync(pair.source) ? "source not found" : "source is empty";
|
|
169
|
+
result.skipped.push(`${pair.targetLabel} (${reason}: ${pair.source})`);
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
const content = pair.transform ? pair.transform(filtered) : filtered;
|
|
173
|
+
let action = "overwrite";
|
|
174
|
+
if (existsSync(pair.target)) {
|
|
175
|
+
if (options.force) {
|
|
176
|
+
action = options.force;
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
action = await askConflictAction(pair.target);
|
|
180
|
+
}
|
|
181
|
+
if (action === "skip") {
|
|
182
|
+
result.skipped.push(`${pair.targetLabel} (skipped by user)`);
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!options.dryRun) {
|
|
187
|
+
mkdirSync(dirname(pair.target), { recursive: true });
|
|
188
|
+
if (action === "append") {
|
|
189
|
+
const existing = readFileSync(pair.target, "utf-8");
|
|
190
|
+
writeFileSync(pair.target, existing + APPEND_SEPARATOR + content + "\n");
|
|
191
|
+
result.appended.push(pair.targetLabel);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
writeFileSync(pair.target, content + "\n");
|
|
195
|
+
result.synced.push(pair.targetLabel);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
if (action === "append") {
|
|
200
|
+
result.appended.push(pair.targetLabel);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
result.synced.push(pair.targetLabel);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return result;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -8,5 +8,10 @@ export declare const PATHS: {
|
|
|
8
8
|
readonly openCodeConfig: string;
|
|
9
9
|
readonly kiroMcpConfig: string;
|
|
10
10
|
readonly cursorMcpConfig: string;
|
|
11
|
+
readonly claudeMdGlobal: string;
|
|
12
|
+
readonly geminiMdGlobal: string;
|
|
13
|
+
readonly codexMdGlobal: string;
|
|
14
|
+
readonly openCodeMdGlobal: string;
|
|
15
|
+
readonly kiroSteeringGlobal: string;
|
|
11
16
|
readonly backupDir: string;
|
|
12
17
|
};
|
package/dist/paths.js
CHANGED
|
@@ -17,6 +17,12 @@ export const PATHS = {
|
|
|
17
17
|
kiroMcpConfig: join(HOME, ".kiro", "settings", "mcp.json"),
|
|
18
18
|
// Cursor
|
|
19
19
|
cursorMcpConfig: join(HOME, ".cursor", "mcp.json"),
|
|
20
|
+
// Instructions (global)
|
|
21
|
+
claudeMdGlobal: join(HOME, ".claude", "CLAUDE.md"),
|
|
22
|
+
geminiMdGlobal: join(HOME, ".gemini", "GEMINI.md"),
|
|
23
|
+
codexMdGlobal: join(HOME, ".codex", "AGENTS.md"),
|
|
24
|
+
openCodeMdGlobal: join(HOME, ".config", "opencode", "AGENTS.md"),
|
|
25
|
+
kiroSteeringGlobal: join(HOME, ".kiro", "steering", "claude-instructions.md"),
|
|
20
26
|
// Backups
|
|
21
27
|
backupDir: join(HOME, ".sync-agents-backup"),
|
|
22
28
|
};
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACtC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IACtD,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAE5D,aAAa;IACb,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IAEtD,YAAY;IACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;IAEhD,WAAW;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;IAElE,WAAW;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;IAE1D,SAAS;IACT,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,UAAU;IACV,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACtC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IACtD,iBAAiB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAE5D,aAAa;IACb,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC;IAEtD,YAAY;IACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;IAC9B,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;IAEhD,WAAW;IACX,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,CAAC;IAElE,WAAW;IACX,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC;IAE1D,SAAS;IACT,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;IAElD,wBAAwB;IACxB,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC;IAClD,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IAChD,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;IAChE,kBAAkB,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,wBAAwB,CAAC;IAE7E,UAAU;IACV,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
|
package/dist/prompt.d.ts
ADDED
package/dist/prompt.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createInterface } from "node:readline";
|
|
2
|
+
/**
|
|
3
|
+
* Ask user how to handle an existing target file.
|
|
4
|
+
* Returns the chosen action.
|
|
5
|
+
*/
|
|
6
|
+
export async function askConflictAction(targetPath) {
|
|
7
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
8
|
+
return new Promise((resolve) => {
|
|
9
|
+
console.log(`\nâ ī¸ Target file already exists: ${targetPath}`);
|
|
10
|
+
console.log(" [o] Overwrite â replace with CLAUDE.md content");
|
|
11
|
+
console.log(" [a] Append â keep existing content + add CLAUDE.md below");
|
|
12
|
+
console.log(" [s] Skip â do nothing");
|
|
13
|
+
rl.question(" Choose action (o/a/s): ", (answer) => {
|
|
14
|
+
rl.close();
|
|
15
|
+
const normalized = answer.trim().toLowerCase();
|
|
16
|
+
if (normalized === "o" || normalized === "overwrite") {
|
|
17
|
+
resolve("overwrite");
|
|
18
|
+
}
|
|
19
|
+
else if (normalized === "a" || normalized === "append") {
|
|
20
|
+
resolve("append");
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
resolve("skip");
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,EAAE,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC,MAAM,EAAE,EAAE;YACnD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBACrD,OAAO,CAAC,WAAW,CAAC,CAAC;YACvB,CAAC;iBAAM,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzD,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sync-agents-settings",
|
|
3
3
|
"packageManager": "pnpm@10.32.1",
|
|
4
|
-
"version": "0.1
|
|
5
|
-
"description": "Sync MCP server configurations from Claude Code to Gemini CLI
|
|
4
|
+
"version": "0.2.1",
|
|
5
|
+
"description": "Sync MCP server configurations and instruction files from Claude Code to Gemini CLI, Codex CLI, OpenCode, Kiro CLI, and Cursor",
|
|
6
6
|
"main": "dist/cli.js",
|
|
7
7
|
"bin": {
|
|
8
8
|
"sync-agents-settings": "bin/sync-agents.cjs",
|