[{"data":1,"prerenderedAt":595},["ShallowReactive",2],{"navigation_docs":3,"-guide-agents-sync":104,"-guide-agents-sync-surround":590},[4,48],{"title":5,"path":6,"stem":7,"children":8,"icon":47},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Registry and paths","\u002Fguide\u002Fregistry","1.guide\u002F02.registry",{"title":16,"path":17,"stem":18},"Running another harness","\u002Fguide\u002Finvoke","1.guide\u002F03.invoke",{"title":20,"path":21,"stem":22},"MCP servers","\u002Fguide\u002Fmcp-servers","1.guide\u002F04.mcp-servers",{"title":24,"path":25,"stem":26},"Instructions files","\u002Fguide\u002Fagents-sync","1.guide\u002F05.agents-sync",{"title":28,"path":29,"stem":30},"CLI","\u002Fguide\u002Fcli","1.guide\u002F06.cli",{"title":32,"path":33,"stem":34},"Agents","\u002Fguide\u002Fagents","1.guide\u002F07.agents",{"title":36,"path":37,"stem":38},"Sessions","\u002Fguide\u002Fsessions","1.guide\u002F08.sessions",{"title":40,"path":41,"stem":42},"Custom harnesses","\u002Fguide\u002Fcustom","1.guide\u002F09.custom",{"title":44,"path":45,"stem":46},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F10.explorer","i-solar-book-2-linear",{"title":49,"path":50,"stem":51,"children":52,"icon":103},"Harnesses","\u002Fharnesses","2.harnesses\u002F00.index",[53,55,59,63,67,71,75,79,83,87,91,95,99],{"title":54,"path":50,"stem":51},"Overview",{"title":56,"path":57,"stem":58},"Claude Code","\u002Fharnesses\u002Fclaude","2.harnesses\u002F01.claude",{"title":60,"path":61,"stem":62},"Codex CLI","\u002Fharnesses\u002Fcodex","2.harnesses\u002F02.codex",{"title":64,"path":65,"stem":66},"Gemini CLI","\u002Fharnesses\u002Fgemini","2.harnesses\u002F03.gemini",{"title":68,"path":69,"stem":70},"Antigravity CLI","\u002Fharnesses\u002Fantigravity","2.harnesses\u002F04.antigravity",{"title":72,"path":73,"stem":74},"Grok CLI","\u002Fharnesses\u002Fgrok","2.harnesses\u002F05.grok",{"title":76,"path":77,"stem":78},"OpenCode","\u002Fharnesses\u002Fopencode","2.harnesses\u002F06.opencode",{"title":80,"path":81,"stem":82},"Pi","\u002Fharnesses\u002Fpi","2.harnesses\u002F07.pi",{"title":84,"path":85,"stem":86},"OMP","\u002Fharnesses\u002Fomp","2.harnesses\u002F08.omp",{"title":88,"path":89,"stem":90},"Cursor","\u002Fharnesses\u002Fcursor","2.harnesses\u002F09.cursor",{"title":92,"path":93,"stem":94},"GitHub Copilot","\u002Fharnesses\u002Fgithub-copilot","2.harnesses\u002F10.github-copilot",{"title":96,"path":97,"stem":98},"Mastra Code","\u002Fharnesses\u002Fmastracode","2.harnesses\u002F11.mastracode",{"title":100,"path":101,"stem":102},"Freebuff","\u002Fharnesses\u002Ffreebuff","2.harnesses\u002F12.freebuff","i-solar-library-linear",{"id":105,"title":24,"body":106,"description":583,"extension":584,"links":585,"meta":586,"navigation":271,"path":25,"seo":588,"stem":26,"__hash__":589},"docs\u002F1.guide\u002F05.agents-sync.md",{"type":107,"value":108,"toc":576},"minimark",[109,114,139,143,153,200,215,219,400,477,480,491,495,505,509,572],[110,111,113],"h2",{"id":112},"the-problem","The problem",[115,116,117,118,122,123,126,127,130,131,134,135,138],"p",{},"Claude reads ",[119,120,121],"code",{},"~\u002F.claude\u002FCLAUDE.md",", Gemini ",[119,124,125],{},"~\u002F.gemini\u002FGEMINI.md",", Codex ",[119,128,129],{},"~\u002F.codex\u002FAGENTS.md",", OMP ",[119,132,133],{},"~\u002F.omp\u002Fagent\u002FAGENTS.md",", and so on for every harness with a stable user scope instructions file. Keep them as copies and they drift within a week, and you notice when one harness follows a rule the others never heard of. ",[119,136,137],{},"syncAgentsFiles"," makes each of them a symlink to one master file, so an edit made through any harness lands in the single physical copy.",[110,140,142],{"id":141},"config","Config",[115,144,145,148,149,152],{},[119,146,147],{},"~\u002F.config\u002Fagntn\u002Fagents.jsonc",", optional. Without it the source is ",[119,150,151],{},"~\u002F.config\u002Fagntn\u002FAGENTS.md"," and nothing is excluded.",[154,155,160],"pre",{"className":156,"code":157,"language":158,"meta":159,"style":159},"language-jsonc shiki shiki-themes github-light github-light poimandres","{\n  \"source\": \"bundle\u002FAGENTS.md\", \u002F\u002F relative to the config directory, or absolute\n  \"companions\": [\"RULES.md\"], \u002F\u002F relative to the source's directory\n  \"excludes\": [\"codex\"]\n}\n","jsonc","",[119,161,162,170,179,188,194],{"__ignoreMap":159},[163,164,167],"span",{"class":165,"line":166},"line",1,[163,168,169],{},"{\n",[163,171,173,176],{"class":165,"line":172},2,[163,174,175],{},"  \"source\": \"bundle\u002FAGENTS.md\",",[163,177,178],{}," \u002F\u002F relative to the config directory, or absolute\n",[163,180,182,185],{"class":165,"line":181},3,[163,183,184],{},"  \"companions\": [\"RULES.md\"],",[163,186,187],{}," \u002F\u002F relative to the source's directory\n",[163,189,191],{"class":165,"line":190},4,[163,192,193],{},"  \"excludes\": [\"codex\"]\n",[163,195,197],{"class":165,"line":196},5,[163,198,199],{},"}\n",[115,201,202,203,206,207,210,211,214],{},"Companions are linked at the same relative path beside each harness target. With the example above, ",[119,204,205],{},"~\u002F.omp\u002Fagent\u002FRULES.md"," becomes a link to ",[119,208,209],{},"bundle\u002FRULES.md",", next to the ",[119,212,213],{},"AGENTS.md"," link. A companion that would collide with the target itself, or that does not exist beside the source, fails the whole run before any link is made.",[110,216,218],{"id":217},"run-it","Run it",[154,220,224],{"className":221,"code":222,"language":223,"meta":159,"style":159},"language-ts shiki shiki-themes github-light github-light poimandres","import { getAllHarnesses, syncAgentsFiles } from \"@agntn\u002Fharnesses\";\n\nconst report = syncAgentsFiles(getAllHarnesses(), false);\nfor (const target of report.targets) {\n  target.id; \u002F\u002F \"claude\"\n  target.path; \u002F\u002F \"\u002Fhome\u002Fdev\u002F.claude\u002FCLAUDE.md\"\n  target.action; \u002F\u002F \"linked\" | \"relinked\" | \"adopted\" | \"unchanged\" | \"skipped\"\n  target.detail; \u002F\u002F backup path for \"adopted\", reason for \"skipped\"\n}\n","ts",[119,225,226,267,273,305,333,350,365,380,395],{"__ignoreMap":159},[163,227,228,232,236,240,243,246,249,253,257,261,264],{"class":165,"line":166},[163,229,231],{"class":230},"sP0CR","import",[163,233,235],{"class":234},"sKlNE"," {",[163,237,239],{"class":238},"snHMy"," getAllHarnesses",[163,241,242],{"class":234},",",[163,244,245],{"class":238}," syncAgentsFiles",[163,247,248],{"class":234}," }",[163,250,252],{"class":251},"stCPd"," from",[163,254,256],{"class":255},"scVjq"," \"",[163,258,260],{"class":259},"sQ7BG","@agntn\u002Fharnesses",[163,262,263],{"class":255},"\"",[163,265,266],{"class":234},";\n",[163,268,269],{"class":165,"line":172},[163,270,272],{"emptyLinePlaceholder":271},true,"\n",[163,274,275,279,283,286,289,292,295,298,302],{"class":165,"line":181},[163,276,278],{"class":277},"s1TYA","const",[163,280,282],{"class":281},"saoiD"," report",[163,284,285],{"class":277}," =",[163,287,245],{"class":288},"sULi6",[163,290,291],{"class":234},"(",[163,293,294],{"class":288},"getAllHarnesses",[163,296,297],{"class":234},"(), ",[163,299,301],{"class":300},"sNe8j","false",[163,303,304],{"class":234},");\n",[163,306,307,310,313,315,318,321,324,327,330],{"class":165,"line":190},[163,308,309],{"class":251},"for",[163,311,312],{"class":234}," (",[163,314,278],{"class":277},[163,316,317],{"class":281}," target",[163,319,320],{"class":277}," of",[163,322,282],{"class":323},"spVlQ",[163,325,326],{"class":234},".",[163,328,329],{"class":323},"targets",[163,331,332],{"class":234},") {\n",[163,334,335,338,340,343,346],{"class":165,"line":196},[163,336,337],{"class":323},"  target",[163,339,326],{"class":234},[163,341,342],{"class":323},"id",[163,344,345],{"class":234},"; ",[163,347,349],{"class":348},"sjhu3","\u002F\u002F \"claude\"\n",[163,351,353,355,357,360,362],{"class":165,"line":352},6,[163,354,337],{"class":323},[163,356,326],{"class":234},[163,358,359],{"class":323},"path",[163,361,345],{"class":234},[163,363,364],{"class":348},"\u002F\u002F \"\u002Fhome\u002Fdev\u002F.claude\u002FCLAUDE.md\"\n",[163,366,368,370,372,375,377],{"class":165,"line":367},7,[163,369,337],{"class":323},[163,371,326],{"class":234},[163,373,374],{"class":323},"action",[163,376,345],{"class":234},[163,378,379],{"class":348},"\u002F\u002F \"linked\" | \"relinked\" | \"adopted\" | \"unchanged\" | \"skipped\"\n",[163,381,383,385,387,390,392],{"class":165,"line":382},8,[163,384,337],{"class":323},[163,386,326],{"class":234},[163,388,389],{"class":323},"detail",[163,391,345],{"class":234},[163,393,394],{"class":348},"\u002F\u002F backup path for \"adopted\", reason for \"skipped\"\n",[163,396,398],{"class":165,"line":397},9,[163,399,199],{"class":234},[401,402,403,416],"table",{},[404,405,406],"thead",{},[407,408,409,413],"tr",{},[410,411,412],"th",{},"Action",[410,414,415],{},"When",[417,418,419,430,440,454,464],"tbody",{},[407,420,421,427],{},[422,423,424],"td",{},[119,425,426],{},"linked",[422,428,429],{},"Nothing was there; a symlink was created",[407,431,432,437],{},[422,433,434],{},[119,435,436],{},"relinked",[422,438,439],{},"A symlink pointed elsewhere, or a regular file identical to the source or empty; now a link, no backup",[407,441,442,447],{},[422,443,444],{},[119,445,446],{},"adopted",[422,448,449,450,453],{},"A regular file with different content; moved to ",[119,451,452],{},"~\u002F.config\u002Fagntn\u002Fdiverged\u002F\u003Cid>-\u003Cname>-\u003Ctimestamp>.md",", then linked",[407,455,456,461],{},[422,457,458],{},[119,459,460],{},"unchanged",[422,462,463],{},"Already a link to the source",[407,465,466,471],{},[422,467,468],{},[119,469,470],{},"skipped",[422,472,473,474],{},"Excluded, or the harness has no ",[119,475,476],{},"agentsFile",[115,478,479],{},"Nothing is deleted. The diverged copy is where you go to merge what that harness had.",[115,481,482,483,486,487,490],{},"The second argument is ",[119,484,485],{},"check",". In check mode every action is reported and nothing is written, so ",[119,488,489],{},"harnesses agents sync --check"," is a doctor you can run in a shell prompt or a cron.",[110,492,494],{"id":493},"which-harnesses","Which harnesses",[115,496,497,498,500,501,504],{},"Only harnesses with an ",[119,499,476],{}," take part. Cursor, Copilot, Grok and Mastra Code have none, because they have no single user scope file the CLI reads on every run; their pages say what they read instead. ",[119,502,503],{},"readAgentsConfig()"," returns the effective config if you want to show it.",[110,506,508],{"id":507},"in-the-cli","In the CLI",[154,510,514],{"className":511,"code":512,"language":513,"meta":159,"style":159},"language-bash shiki shiki-themes github-light github-light poimandres","harnesses agents sync --check     # report only\nharnesses agents sync             # link everything\nharnesses agents sync gemini      # one harness\nharnesses agents sync --json\n","bash",[119,515,516,536,547,561],{"__ignoreMap":159},[163,517,518,522,526,529,533],{"class":165,"line":166},[163,519,521],{"class":520},"sseY5","harnesses",[163,523,525],{"class":524},"sX7Zv"," agents",[163,527,528],{"class":524}," sync",[163,530,532],{"class":531},"sqT1Y"," --check",[163,534,535],{"class":348},"     # report only\n",[163,537,538,540,542,544],{"class":165,"line":172},[163,539,521],{"class":520},[163,541,525],{"class":524},[163,543,528],{"class":524},[163,545,546],{"class":348},"             # link everything\n",[163,548,549,551,553,555,558],{"class":165,"line":181},[163,550,521],{"class":520},[163,552,525],{"class":524},[163,554,528],{"class":524},[163,556,557],{"class":524}," gemini",[163,559,560],{"class":348},"      # one harness\n",[163,562,563,565,567,569],{"class":165,"line":190},[163,564,521],{"class":520},[163,566,525],{"class":524},[163,568,528],{"class":524},[163,570,571],{"class":531}," --json\n",[573,574,575],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}html pre.shiki code .sNe8j, html code.shiki .sNe8j{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#D0679D}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .sjhu3, html code.shiki .sjhu3{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#767C9DB0;--shiki-dark-font-style:italic}html pre.shiki code .sseY5, html code.shiki .sseY5{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#91B4D5}html pre.shiki code .sX7Zv, html code.shiki .sX7Zv{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#ADD7FF}html pre.shiki code .sqT1Y, html code.shiki .sqT1Y{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#ADD7FF}",{"title":159,"searchDepth":172,"depth":172,"links":577},[578,579,580,581,582],{"id":112,"depth":172,"text":113},{"id":141,"depth":172,"text":142},{"id":217,"depth":172,"text":218},{"id":493,"depth":172,"text":494},{"id":507,"depth":172,"text":508},"One AGENTS.md behind every harness's global CLAUDE.md, GEMINI.md and AGENTS.md, as symlinks, with a doctor mode.","md",null,{"icon":587},"i-solar-link-linear",{"title":24,"description":583},"LwTd6hzMiJ64lEdqw9xLomfEJgA6kfZM_LLlaBFR0xc",[591,593],{"title":20,"path":21,"stem":22,"description":592,"children":-1},"Read every harness's MCP list in one shape, edit one entry, or reset them all to a master file.",{"title":28,"path":29,"stem":30,"description":594,"children":-1},"The harnesses command, nine subcommands, JSON and TOON output on all the read ones.",1788622198893]