agents-anywhere 0.5.0

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 agentsync contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,180 @@
1
+ <p align="center">
2
+ <h1 align="center">agents-anywhere</h1>
3
+ <p align="center">
4
+ Your AI agent configs, skills, and instructions — on every device.
5
+ <br />
6
+ <b>One config repo. Every agent. Every machine.</b>
7
+ </p>
8
+ <p align="center">
9
+ <a href="https://www.npmjs.com/package/agents-anywhere"><img alt="npm version" src="https://img.shields.io/npm/v/agents-anywhere?style=flat-square&color=cb3837" /></a>
10
+ <a href="https://www.npmjs.com/package/agents-anywhere"><img alt="npm downloads" src="https://img.shields.io/npm/dm/agents-anywhere?style=flat-square&color=blue" /></a>
11
+ <a href="https://github.com/alejandrobailo/agents-anywhere/blob/main/LICENSE"><img alt="license" src="https://img.shields.io/github/license/alejandrobailo/agents-anywhere?style=flat-square" /></a>
12
+ </p>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <img src="assets/demo-init.gif" alt="agents-anywhere init demo" width="800" />
17
+ </p>
18
+
19
+ ---
20
+
21
+ You've spent hours perfecting your `CLAUDE.md`, building custom skills, tuning your settings. Then you open your laptop and none of it is there. Or you switch from Claude Code to Codex and start from scratch.
22
+
23
+ **agents-anywhere** keeps your agent setup in a git repo and symlinks it to every agent on every machine.
24
+
25
+ ## Quick Start
26
+
27
+ ```bash
28
+ # New setup — one command does everything
29
+ npx agents-anywhere init
30
+
31
+ # New device — clone your existing config
32
+ npx agents-anywhere init --from https://github.com/you/agents-anywhere-config.git
33
+ ```
34
+
35
+ That's it. `init` detects your installed agents, picks a primary, copies configs, imports MCP servers, creates symlinks, and optionally pushes to a private GitHub repo.
36
+
37
+ ## Supported Agents
38
+
39
+ | Agent | Instructions | Skills | Other portable files |
40
+ |---|---|---|---|
41
+ | Claude Code | `CLAUDE.md` | `skills/` | settings.json, keybindings.json, commands/ |
42
+ | Codex CLI | `AGENTS.md` | `skills/` | config.toml |
43
+ | OpenCode | `AGENTS.md` | `skills/` | opencode.json |
44
+ | Gemini CLI | `GEMINI.md` | `skills/` | settings.json, commands/ |
45
+ | Cursor | `rules/` | `skills/` | — |
46
+ | Windsurf | `rules/` | `skills/` | memories/ |
47
+ | GitHub Copilot CLI | `copilot-instructions.md` | `skills/` | — |
48
+ | Amazon Q Developer | `rules/` | `skills/` | — |
49
+ | Kiro | `steering/` | `skills/` | — |
50
+ | Antigravity | `GEMINI.md` | `skills/` | — |
51
+
52
+ > Cursor, Windsurf, and Amazon Q only support project-level rules — global instructions are not synced for these agents.
53
+
54
+ **Planned:** Cline, Roo Code, Kilo Code, Amp, Augment, Zed, Trae, Continue.dev.
55
+
56
+ ## Device Sync
57
+
58
+ ```bash
59
+ # Machine A — you changed your CLAUDE.md and added a skill
60
+ agents-anywhere push
61
+
62
+ # Machine B — get the changes
63
+ agents-anywhere pull
64
+ # post-merge hook auto-runs: link + mcp sync
65
+ ```
66
+
67
+ No cloud, no accounts — just git.
68
+
69
+ ## What Gets Synced
70
+
71
+ ```
72
+ agents-anywhere-config/ # your git repo
73
+ ├── claude-code/
74
+ │ ├── CLAUDE.md # → ~/.claude/CLAUDE.md (source of truth)
75
+ │ ├── settings.json # → ~/.claude/settings.json
76
+ │ ├── skills/ # → ~/.claude/skills/
77
+ │ └── commands/ # → ~/.claude/commands/
78
+ ├── codex/
79
+ │ ├── AGENTS.md # → symlink to claude-code/CLAUDE.md
80
+ │ ├── config.toml # → ~/.codex/config.toml
81
+ │ └── skills/ # → ~/.codex/skills/
82
+ ├── opencode/
83
+ │ ├── AGENTS.md # → symlink to claude-code/CLAUDE.md
84
+ │ └── skills/ # → ~/.config/opencode/skills/
85
+ ├── mcp.json # normalized MCP config
86
+ └── agents-anywhere.json # manifest
87
+ ```
88
+
89
+ Your primary agent's instructions (e.g., `CLAUDE.md`) become the source of truth. Other agents get symlinks with the correct filename. Edit once, synced everywhere.
90
+
91
+ ## MCP Normalization
92
+
93
+ Every agent has a different MCP config format. Write **one `mcp.json`**, get the native format for each agent.
94
+
95
+ `init` auto-imports your existing MCP servers from all installed agents and deduplicates them.
96
+
97
+ ```json
98
+ {
99
+ "servers": {
100
+ "github": {
101
+ "transport": "stdio",
102
+ "command": "npx",
103
+ "args": ["-y", "@modelcontextprotocol/server-github"],
104
+ "env": { "GITHUB_TOKEN": { "$env": "GITHUB_TOKEN" } }
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ ```bash
111
+ $ agents-anywhere mcp sync
112
+
113
+ ✓ Claude Code — wrote ~/.claude/.mcp.json
114
+ ✓ Codex CLI — merged into ~/.codex/config.toml
115
+ ✓ Cursor — wrote ~/.cursor/mcp.json
116
+ ✓ Gemini CLI — merged into ~/.gemini/settings.json
117
+ ...
118
+ ```
119
+
120
+ Each agent gets its native format — correct root keys, env var syntax, transport naming.
121
+
122
+ <details>
123
+ <summary><b>MCP Format Reference</b></summary>
124
+
125
+ | Agent | Output | Root key | Env syntax |
126
+ |---|---|---|---|
127
+ | Claude Code | `~/.claude/.mcp.json` | `mcpServers` | `${VAR}` |
128
+ | Codex CLI | `~/.codex/config.toml` (merged) | `[mcp_servers.*]` | `env_vars` array |
129
+ | OpenCode | `~/.config/opencode/opencode.json` (merged) | `mcp` | `{env:VAR}` |
130
+ | Gemini CLI | `~/.gemini/settings.json` (merged) | `mcpServers` | `${VAR}` |
131
+ | Cursor | `~/.cursor/mcp.json` | `mcpServers` | `${env:VAR}` |
132
+ | Windsurf | `~/.codeium/windsurf/mcp_config.json` | `mcpServers` | `${env:VAR}` |
133
+ | GitHub Copilot CLI | `~/.copilot/mcp-config.json` | `mcpServers` | `${VAR}` |
134
+ | Amazon Q Developer | `~/.aws/amazonq/mcp.json` | `mcpServers` | `${VAR}` |
135
+ | Kiro | `~/.kiro/settings/mcp.json` | `mcpServers` | `${VAR}` |
136
+ | Antigravity | `~/.gemini/antigravity/mcp_config.json` | `mcpServers` | `${VAR}` |
137
+
138
+ </details>
139
+
140
+ ## Commands
141
+
142
+ | Command | Description |
143
+ |---|---|
144
+ | `init [dir]` | Detect agents, copy configs, import MCP, link — full setup |
145
+ | `init --from <url>` | Clone an existing config repo and link |
146
+ | `push` | Stage, commit, and push config changes to remote |
147
+ | `pull` | Pull config changes (post-merge hook re-links) |
148
+ | `link [agent]` | Symlink configs to agent directories |
149
+ | `unlink [agent]` | Remove symlinks, restore backups |
150
+ | `status` | Show link status per agent and file |
151
+ | `agents` | List all known agents with install status |
152
+ | `enable <agent>` | Enable an agent in the manifest |
153
+ | `disable <agent>` | Disable an agent in the manifest |
154
+ | `mcp sync` | Generate per-agent MCP configs from `mcp.json` |
155
+ | `mcp add <name>` | Add an MCP server interactively or with flags |
156
+ | `mcp remove <name>` | Remove an MCP server |
157
+ | `mcp list` | Show all configured MCP servers |
158
+ | `mcp diff` | Preview what `mcp sync` would change |
159
+ | `doctor` | Diagnose broken symlinks, credentials in repo, stale configs |
160
+ | `validate` | Validate bundled agent definition schemas |
161
+ | `export` | Generate a standalone install script |
162
+
163
+ `link`, `unlink`, and `mcp sync` support `--dry-run`.
164
+
165
+ ## How It Works
166
+
167
+ Each agent is defined by a JSON file — no TypeScript code needed:
168
+
169
+ ```bash
170
+ # Add support for a new agent = add one JSON file
171
+ agents/my-agent.json
172
+ ```
173
+
174
+ The definition declares where configs live, what files are portable, what to ignore, how MCP is formatted, and whether the agent supports global instructions.
175
+
176
+ See [DEVELOPMENT.md](DEVELOPMENT.md) for the full schema and contribution guide.
177
+
178
+ ## License
179
+
180
+ MIT
@@ -0,0 +1,43 @@
1
+ {
2
+ "id": "amazon-q",
3
+ "name": "Amazon Q Developer",
4
+ "configDir": {
5
+ "darwin": "~/.aws/amazonq",
6
+ "linux": "~/.aws/amazonq",
7
+ "win32": "%APPDATA%/aws/amazonq"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.aws/amazonq"
12
+ },
13
+ "portable": [
14
+ "rules/**",
15
+ "skills/**"
16
+ ],
17
+ "ignore": [
18
+ "cache/**",
19
+ "sessions/**",
20
+ "*.backup.*"
21
+ ],
22
+ "credentials": [],
23
+ "instructions": {
24
+ "filename": "rules",
25
+ "globalPath": "~/.aws/amazonq/rules",
26
+ "globalSupport": false
27
+ },
28
+ "mcp": {
29
+ "configPath": "mcp.json",
30
+ "scope": "user",
31
+ "rootKey": "mcpServers",
32
+ "format": "json",
33
+ "writeMode": "standalone",
34
+ "envSyntax": "${VAR}",
35
+ "transports": {
36
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
37
+ "http": { "typeField": "type", "typeValue": "http" }
38
+ },
39
+ "commandType": "string",
40
+ "envKey": "env",
41
+ "envVarStyle": "inline"
42
+ }
43
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "id": "antigravity",
3
+ "name": "Google Antigravity",
4
+ "configDir": {
5
+ "darwin": "~/.gemini/antigravity",
6
+ "linux": "~/.gemini/antigravity",
7
+ "win32": "%APPDATA%/gemini/antigravity"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.gemini/antigravity"
12
+ },
13
+ "portable": [
14
+ "GEMINI.md",
15
+ "skills/**"
16
+ ],
17
+ "ignore": [
18
+ "cache/**",
19
+ "sessions/**",
20
+ "*.backup.*"
21
+ ],
22
+ "credentials": [],
23
+ "instructions": {
24
+ "filename": "GEMINI.md",
25
+ "globalPath": "~/.gemini/GEMINI.md",
26
+ "globalSupport": true
27
+ },
28
+ "mcp": {
29
+ "configPath": "mcp_config.json",
30
+ "scope": "user",
31
+ "rootKey": "mcpServers",
32
+ "format": "json",
33
+ "writeMode": "standalone",
34
+ "envSyntax": "${VAR}",
35
+ "transports": {
36
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
37
+ "http": { "typeField": "type", "typeValue": "http" }
38
+ },
39
+ "commandType": "string",
40
+ "envKey": "env",
41
+ "envVarStyle": "inline"
42
+ }
43
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "id": "claude-code",
3
+ "name": "Claude Code",
4
+ "configDir": {
5
+ "darwin": "~/.claude",
6
+ "linux": "~/.claude",
7
+ "win32": "%APPDATA%/claude"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.claude"
12
+ },
13
+ "portable": [
14
+ "settings.json",
15
+ "keybindings.json",
16
+ "CLAUDE.md",
17
+ "commands/**",
18
+ "skills/**"
19
+ ],
20
+ "ignore": [
21
+ "history.jsonl",
22
+ "projects/**",
23
+ "sessions/**",
24
+ "session-env/**",
25
+ "shell-snapshots/**",
26
+ "debug/**",
27
+ "statsig/**",
28
+ "telemetry/**",
29
+ "todos/**",
30
+ "file-history/**",
31
+ "paste-cache/**",
32
+ "cache/**",
33
+ "ide/**",
34
+ "plans/**",
35
+ "downloads/**",
36
+ "stats-cache.json",
37
+ "*.backup.*"
38
+ ],
39
+ "credentials": [
40
+ "~/.claude.json"
41
+ ],
42
+ "instructions": {
43
+ "filename": "CLAUDE.md",
44
+ "globalPath": "~/.claude/CLAUDE.md",
45
+ "globalSupport": true
46
+ },
47
+ "mcp": {
48
+ "configPath": ".mcp.json",
49
+ "scope": "project-and-user",
50
+ "rootKey": "mcpServers",
51
+ "format": "json",
52
+ "writeMode": "standalone",
53
+ "envSyntax": "${VAR}",
54
+ "defaultSyntax": "${VAR:-default}",
55
+ "transports": {
56
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
57
+ "http": { "typeField": "type", "typeValue": "http" }
58
+ },
59
+ "commandType": "string",
60
+ "envKey": "env"
61
+ }
62
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "codex",
3
+ "name": "Codex CLI",
4
+ "configDir": {
5
+ "darwin": "~/.codex",
6
+ "linux": "~/.codex",
7
+ "win32": "%APPDATA%/codex"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.codex"
12
+ },
13
+ "portable": [
14
+ "config.toml",
15
+ "AGENTS.md",
16
+ "skills/**"
17
+ ],
18
+ "ignore": [
19
+ "sessions/**",
20
+ "cache/**",
21
+ "*.backup.*"
22
+ ],
23
+ "credentials": [],
24
+ "instructions": {
25
+ "filename": "AGENTS.md",
26
+ "globalPath": "~/.codex/AGENTS.md",
27
+ "globalSupport": true
28
+ },
29
+ "mcp": {
30
+ "configPath": "config.toml",
31
+ "scope": "user",
32
+ "rootKey": "mcp_servers",
33
+ "format": "toml",
34
+ "writeMode": "merge",
35
+ "envSyntax": "env_vars",
36
+ "transports": {
37
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
38
+ "http": { "typeField": "type", "typeValue": "http" }
39
+ },
40
+ "commandType": "string",
41
+ "envKey": "env_vars",
42
+ "serverSection": "mcp_servers",
43
+ "envVarStyle": "named"
44
+ }
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "cursor",
3
+ "name": "Cursor",
4
+ "configDir": {
5
+ "darwin": "~/.cursor",
6
+ "linux": "~/.cursor",
7
+ "win32": "%APPDATA%/cursor"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.cursor"
12
+ },
13
+ "portable": [
14
+ "rules/**",
15
+ "skills/**"
16
+ ],
17
+ "ignore": [
18
+ "sessions/**",
19
+ "cache/**",
20
+ "extensions/**",
21
+ "logs/**",
22
+ "*.backup.*"
23
+ ],
24
+ "credentials": [],
25
+ "instructions": {
26
+ "filename": "rules",
27
+ "globalPath": "~/.cursor/rules",
28
+ "globalSupport": false
29
+ },
30
+ "mcp": {
31
+ "configPath": "mcp.json",
32
+ "scope": "user",
33
+ "rootKey": "mcpServers",
34
+ "format": "json",
35
+ "writeMode": "standalone",
36
+ "envSyntax": "${env:VAR}",
37
+ "transports": {
38
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
39
+ "http": { "typeField": "type", "typeValue": "http" }
40
+ },
41
+ "commandType": "string",
42
+ "envKey": "env",
43
+ "envVarStyle": "inline"
44
+ }
45
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "id": "gemini-cli",
3
+ "name": "Gemini CLI",
4
+ "configDir": {
5
+ "darwin": "~/.gemini",
6
+ "linux": "~/.gemini",
7
+ "win32": "%APPDATA%/gemini"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.gemini"
12
+ },
13
+ "portable": [
14
+ "settings.json",
15
+ "GEMINI.md",
16
+ "skills/**",
17
+ "commands/**"
18
+ ],
19
+ "ignore": [
20
+ "sessions/**",
21
+ "cache/**",
22
+ "*.backup.*"
23
+ ],
24
+ "credentials": [],
25
+ "instructions": {
26
+ "filename": "GEMINI.md",
27
+ "globalPath": "~/.gemini/GEMINI.md",
28
+ "globalSupport": true
29
+ },
30
+ "mcp": {
31
+ "configPath": "settings.json",
32
+ "scope": "user",
33
+ "rootKey": "mcpServers",
34
+ "format": "json",
35
+ "writeMode": "merge",
36
+ "envSyntax": "${VAR}",
37
+ "transports": {
38
+ "stdio": {},
39
+ "http": { "urlKey": "httpUrl" }
40
+ },
41
+ "commandType": "string",
42
+ "envKey": "env",
43
+ "envVarStyle": "inline"
44
+ }
45
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "id": "github-copilot",
3
+ "name": "GitHub Copilot CLI",
4
+ "configDir": {
5
+ "darwin": "~/.copilot",
6
+ "linux": "~/.copilot",
7
+ "win32": "%APPDATA%/copilot"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.copilot"
12
+ },
13
+ "portable": [
14
+ "copilot-instructions.md",
15
+ "skills/**"
16
+ ],
17
+ "ignore": [
18
+ "cache/**",
19
+ "sessions/**",
20
+ "*.backup.*"
21
+ ],
22
+ "credentials": [],
23
+ "instructions": {
24
+ "filename": "copilot-instructions.md",
25
+ "globalPath": "~/.copilot/copilot-instructions.md",
26
+ "globalSupport": true
27
+ },
28
+ "mcp": {
29
+ "configPath": "mcp-config.json",
30
+ "scope": "user",
31
+ "rootKey": "mcpServers",
32
+ "format": "json",
33
+ "writeMode": "standalone",
34
+ "envSyntax": "${VAR}",
35
+ "transports": {
36
+ "stdio": { "typeField": "type", "typeValue": "local" },
37
+ "http": { "typeField": "type", "typeValue": "http" }
38
+ },
39
+ "commandType": "string",
40
+ "envKey": "env",
41
+ "envVarStyle": "inline"
42
+ }
43
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "id": "kiro",
3
+ "name": "Kiro",
4
+ "configDir": {
5
+ "darwin": "~/.kiro",
6
+ "linux": "~/.kiro",
7
+ "win32": "%APPDATA%/kiro"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.kiro"
12
+ },
13
+ "portable": [
14
+ "steering/**",
15
+ "skills/**"
16
+ ],
17
+ "ignore": [
18
+ "cache/**",
19
+ "sessions/**",
20
+ "*.backup.*"
21
+ ],
22
+ "credentials": [],
23
+ "instructions": {
24
+ "filename": "steering",
25
+ "globalPath": "~/.kiro/steering",
26
+ "globalSupport": true
27
+ },
28
+ "mcp": {
29
+ "configPath": "settings/mcp.json",
30
+ "scope": "user",
31
+ "rootKey": "mcpServers",
32
+ "format": "json",
33
+ "writeMode": "standalone",
34
+ "envSyntax": "${VAR}",
35
+ "transports": {
36
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
37
+ "http": { "typeField": "type", "typeValue": "http" }
38
+ },
39
+ "commandType": "string",
40
+ "envKey": "env",
41
+ "envVarStyle": "inline"
42
+ }
43
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "id": "opencode",
3
+ "name": "OpenCode",
4
+ "configDir": {
5
+ "darwin": "~/.config/opencode",
6
+ "linux": "~/.config/opencode",
7
+ "win32": "%APPDATA%/opencode"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.config/opencode"
12
+ },
13
+ "portable": [
14
+ "opencode.json",
15
+ "AGENTS.md",
16
+ "skills/**"
17
+ ],
18
+ "ignore": [
19
+ "sessions/**",
20
+ "cache/**",
21
+ "*.backup.*"
22
+ ],
23
+ "credentials": [],
24
+ "instructions": {
25
+ "filename": "AGENTS.md",
26
+ "globalPath": "~/.config/opencode/AGENTS.md",
27
+ "globalSupport": true
28
+ },
29
+ "mcp": {
30
+ "configPath": "opencode.json",
31
+ "scope": "user",
32
+ "rootKey": "mcp",
33
+ "format": "json",
34
+ "writeMode": "merge",
35
+ "envSyntax": "{env:VAR}",
36
+ "transports": {
37
+ "stdio": { "typeField": "type", "typeValue": "local" },
38
+ "http": { "typeField": "type", "typeValue": "remote", "urlKey": "url" }
39
+ },
40
+ "commandType": "array",
41
+ "envKey": "env",
42
+ "envVarStyle": "inline"
43
+ }
44
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "id": "windsurf",
3
+ "name": "Windsurf",
4
+ "configDir": {
5
+ "darwin": "~/.codeium/windsurf",
6
+ "linux": "~/.codeium/windsurf",
7
+ "win32": "%APPDATA%/codeium/windsurf"
8
+ },
9
+ "detect": {
10
+ "type": "directory-exists",
11
+ "path": "~/.codeium/windsurf"
12
+ },
13
+ "portable": [
14
+ "mcp_config.json",
15
+ "memories/**",
16
+ "rules/**",
17
+ "skills/**"
18
+ ],
19
+ "ignore": [
20
+ "cache/**",
21
+ "logs/**",
22
+ "sessions/**",
23
+ "*.backup.*"
24
+ ],
25
+ "credentials": [],
26
+ "instructions": {
27
+ "filename": "rules",
28
+ "globalPath": "~/.codeium/windsurf/rules",
29
+ "globalSupport": false
30
+ },
31
+ "mcp": {
32
+ "configPath": "mcp_config.json",
33
+ "scope": "user",
34
+ "rootKey": "mcpServers",
35
+ "format": "json",
36
+ "writeMode": "standalone",
37
+ "envSyntax": "${env:VAR}",
38
+ "transports": {
39
+ "stdio": { "typeField": "type", "typeValue": "stdio" },
40
+ "http": { "typeField": "type", "typeValue": "http", "urlKey": "serverUrl" }
41
+ },
42
+ "commandType": "string",
43
+ "envKey": "env",
44
+ "envVarStyle": "inline"
45
+ }
46
+ }