acsync.toml (4958 bytes)
1 # Canonical AI config for all 8 targets (4 AIs x PC "pc" + desktop "g"). 2 # Rendered by acsync (github.com/equwal/agent-config-sync). Machine values live in 3 # ~/.config/acsync/machine.toml on each machine. Its [vars] must set the private 4 # network values the rules use: owner, hub_host, hub_peer_vps, hub_wg_ip, hub_cert, 5 # g_ip, g_user. A rule whose var is missing is skipped on that machine. 6 7 [targets.claude] 8 instructions = "${home}/.claude/CLAUDE.md" 9 skills = ["${home}/.claude/skills"] 10 mcp = { format = "json", path = "${home}/.claude.json", defaults = { type = "stdio" } } 11 12 [targets.codex] 13 instructions = "${home}/.codex/AGENTS.md" 14 skills = ["${home}/.codex/skills"] 15 mcp = { format = "codex", path = "${home}/.codex/config.toml", defaults = { startup_timeout_sec = 60 } } 16 17 [targets.copilot] 18 instructions = "${home}/.copilot/copilot-instructions.md" 19 skills = ["${home}/.copilot/skills"] 20 mcp = { format = "json", path = "${home}/.copilot/mcp-config.json", defaults = { type = "stdio", tools = ["*"] } } 21 22 [targets.antigravity] 23 instructions = "${home}/.gemini/GEMINI.md" 24 skills = ["${home}/.gemini/skills", "${home}/.gemini/antigravity/skills"] 25 mcp = { format = "json", path = "${home}/.gemini/config/mcp_config.json" } 26 27 # ---------- rules (one file each; order = order for newly added blocks) ---------- 28 [rules.coop] 29 [rules.install] 30 [rules.no-user-todo] 31 targets = ["claude", "codex", "copilot", "antigravity"] 32 file.claude = "${home}/.claude/rules/no-user-todo.md" 33 [rules.ponytail] 34 targets = ["codex"] 35 [rules.windows-powershell] 36 targets = ["codex", "copilot", "antigravity"] 37 machines = ["pc"] 38 adopt_heading = "## MANDATORY on the Windows PC: PowerShell 7.6 syntax" 39 [rules.tooling] 40 [rules.speckit] # rules/speckit.<target>.md per target 41 [rules.wayland] 42 [rules.undo-commands] 43 machines = ["pc"] # g never had it; add "g" to roll it out there 44 adopt_heading = "## MANDATORY: Undo commands are copy-only" 45 [rules.patches] 46 [rules.cleanup] 47 [rules.email-patches] 48 [rules.hand-written] 49 [rules.no-bak] 50 [rules.license] 51 52 # ---------- skills (all 8 skills folders) ---------- 53 # ste-writing: retired; must not exist in any skills folder. 54 [skills.agent-creator] 55 [skills.agent-manager] 56 [skills.api-contract-testing] 57 [skills.call-transcript] 58 [skills.ccai-license] 59 [skills.chrome] 60 [skills.coop] 61 [skills.deploy-handoff] 62 only.claude = ["g"] # the PC uses the deploy-handoff plugin instead 63 [skills.docs-manage] 64 [skills.docs-search] 65 [skills.dynamic-analysis] 66 [skills.i-have-adhd] 67 [skills.impactful-writing] 68 [skills.learn-mode] 69 [skills.memstate] 70 [skills.ponytail] 71 [skills.powershell] 72 [skills.regression-bisect] 73 [skills.skill-finder] 74 [skills.skill-learning] 75 [skills.spaced-repetition] 76 [skills.sshp] 77 [skills.ste100] 78 [skills.structural-refactor] 79 [skills.verification-before-completion] 80 81 # ---------- MCP servers ---------- 82 [mcp.coop] 83 command = "${coop_bin}" 84 args = ["mcp"] 85 [mcp.coop.target.codex] 86 default_tools_approval_mode = "approve" 87 88 [mcp.headroom] 89 command = "${headroom_bin}" 90 args = ["mcp", "serve"] 91 92 [mcp.memstate] 93 command = "${node}" 94 args = ["${memstate_js}"] 95 env = { MEMSTATE_ADDR = "${memstate_addr}" } 96 97 [mcp.context7] 98 url = "https://mcp.context7.com/mcp" 99 targets = ["claude", "copilot", "codex"] 100 target.claude = { type = "http" } 101 target.copilot = { type = "http" } 102 103 [mcp.ideamine] 104 command = "${node}" 105 args = ["${home_posix}/.claude/plugins/marketplaces/ideamine/bin/ideamine.js", "mcp", "--plugin"] 106 targets = ["copilot", "antigravity", "codex"] 107 108 [mcp.sshp] 109 command = '${home}\AppData\Local\Programs\Python\Launcher\py.exe' 110 args = ["-3", '${home}\.local\share\sshp-ai\sshp_mcp.py'] 111 target.copilot = { type = "local" } 112 113 # PC-only servers 114 [mcp.windows-mcp] 115 machines = ["pc"] 116 command = '${home}\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\Scripts\uvx.exe' 117 args = ["windows-mcp", "serve", "--transport", "stdio"] 118 119 [mcp.tokensave] 120 machines = ["pc"] 121 command = "cmd" 122 args = ["/c", '${home}\.tokensave-none\serve-tokensave.cmd'] 123 124 [mcp.qwen] 125 machines = ["pc"] 126 command = '${home}\AppData\Local\Programs\Python\Python314\Scripts\uv.exe' 127 args = ["run", "--script", '${home}\mcp-servers\qwen-local\server.py'] 128 env = { QWEN_MODEL = "huihui_ai/qwen3.5-abliterated:9b" } 129 130 [mcp.anyquery] 131 machines = ["pc"] 132 command = "anyquery" 133 args = ["mcp", "--stdio"] 134 135 [mcp.cclsp] 136 machines = ["pc"] 137 command = "node" 138 args = ["-r", '${home}\.config\claude\cclsp-exit-on-stdin-end.cjs', '${home}\AppData\Roaming\npm\node_modules\cclsp\dist\index.js'] 139 env = { CCLSP_CONFIG_PATH = '${home}\.config\claude\cclsp.json' } 140 141 [mcp.codebase-memory-mcp] 142 machines = ["pc"] 143 command = "${home_posix}/AppData/Local/Programs/codebase-memory-mcp/codebase-memory-mcp.exe" 144 args = [] 145 env = { CBM_RUNTIME_DIR = "${home_posix}/.cache/cbm-runtime" } 146 147 [mcp.shipyard] 148 machines = ["pc"] 149 targets = ["copilot", "antigravity", "codex"] 150 command = "node" 151 args = ['${home}\shipyard\bin\shipyard.js'] 152 env = { MEMSTATE_DB = '${home}\.memstate\memstate.db' }