[{"data":1,"prerenderedAt":731},["ShallowReactive",2],{"navigation_docs":3,"-guide-registry":104,"-guide-registry-surround":726},[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":12,"body":106,"description":719,"extension":720,"links":721,"meta":722,"navigation":191,"path":13,"seo":724,"stem":14,"__hash__":725},"docs\u002F1.guide\u002F02.registry.md",{"type":107,"value":108,"toc":711},"minimark",[109,114,139,349,386,396,402,406,423,434,438,444,469,472,476,536,552,556,626,643,647,698,707],[110,111,113],"h2",{"id":112},"templates","Templates",[115,116,117,118,122,123,126,127,130,131,134,135,138],"p",{},"Paths in the registry are templates. ",[119,120,121],"code",{},"~"," at the start and ",[119,124,125],{},"${HOME}"," anywhere become the home directory, ",[119,128,129],{},"${PROJECT_ROOT}"," the project root, ",[119,132,133],{},"%VAR%"," the environment variable of that name. ",[119,136,137],{},"resolve"," expands them and filters by platform in one pass:",[140,141,146],"pre",{"className":142,"code":143,"language":144,"meta":145,"style":145},"language-ts shiki shiki-themes github-light github-light poimandres","import { getHarness } from \"@agntn\u002Fharnesses\";\n\nconst gemini = getHarness(\"gemini\");\n\ngemini.resolve({ platform: \"win32\", homeDir: \"C:\\\\Users\\\\dev\" }).config.map((p) => p.path);\n\u002F\u002F [\n\u002F\u002F   \"C:\\\\Users\\\\dev\u002F.gemini\u002Fsettings.json\",\n\u002F\u002F   \".gemini\u002Fsettings.json\",\n\u002F\u002F   \"C:\\\\ProgramData\u002Fgemini-cli\u002Fsettings.json\"   \u002F\u002F %PROGRAMDATA% from the environment\n\u002F\u002F ]\n","ts","",[119,147,148,186,193,223,228,315,322,328,334,343],{"__ignoreMap":145},[149,150,153,157,161,165,168,172,176,180,183],"span",{"class":151,"line":152},"line",1,[149,154,156],{"class":155},"sP0CR","import",[149,158,160],{"class":159},"sKlNE"," {",[149,162,164],{"class":163},"snHMy"," getHarness",[149,166,167],{"class":159}," }",[149,169,171],{"class":170},"stCPd"," from",[149,173,175],{"class":174},"scVjq"," \"",[149,177,179],{"class":178},"sQ7BG","@agntn\u002Fharnesses",[149,181,182],{"class":174},"\"",[149,184,185],{"class":159},";\n",[149,187,189],{"class":151,"line":188},2,[149,190,192],{"emptyLinePlaceholder":191},true,"\n",[149,194,196,200,204,207,210,213,215,218,220],{"class":151,"line":195},3,[149,197,199],{"class":198},"s1TYA","const",[149,201,203],{"class":202},"saoiD"," gemini",[149,205,206],{"class":198}," =",[149,208,164],{"class":209},"sULi6",[149,211,212],{"class":159},"(",[149,214,182],{"class":174},[149,216,217],{"class":178},"gemini",[149,219,182],{"class":174},[149,221,222],{"class":159},");\n",[149,224,226],{"class":151,"line":225},4,[149,227,192],{"emptyLinePlaceholder":191},[149,229,231,234,237,239,242,245,248,250,253,255,258,261,263,265,268,272,275,277,280,282,285,288,290,293,296,299,302,305,308,310,313],{"class":151,"line":230},5,[149,232,217],{"class":233},"spVlQ",[149,235,236],{"class":159},".",[149,238,137],{"class":209},[149,240,241],{"class":159},"({",[149,243,244],{"class":163}," platform",[149,246,247],{"class":159},":",[149,249,175],{"class":174},[149,251,252],{"class":178},"win32",[149,254,182],{"class":174},[149,256,257],{"class":159},",",[149,259,260],{"class":163}," homeDir",[149,262,247],{"class":159},[149,264,175],{"class":174},[149,266,267],{"class":178},"C:",[149,269,271],{"class":270},"stM5N","\\\\",[149,273,274],{"class":178},"Users",[149,276,271],{"class":270},[149,278,279],{"class":178},"dev",[149,281,182],{"class":174},[149,283,284],{"class":159}," }).",[149,286,287],{"class":233},"config",[149,289,236],{"class":159},[149,291,292],{"class":209},"map",[149,294,295],{"class":159},"((",[149,297,115],{"class":298},"s1jWp",[149,300,301],{"class":159},") ",[149,303,304],{"class":198},"=>",[149,306,307],{"class":233}," p",[149,309,236],{"class":159},[149,311,312],{"class":233},"path",[149,314,222],{"class":159},[149,316,318],{"class":151,"line":317},6,[149,319,321],{"class":320},"sjhu3","\u002F\u002F [\n",[149,323,325],{"class":151,"line":324},7,[149,326,327],{"class":320},"\u002F\u002F   \"C:\\\\Users\\\\dev\u002F.gemini\u002Fsettings.json\",\n",[149,329,331],{"class":151,"line":330},8,[149,332,333],{"class":320},"\u002F\u002F   \".gemini\u002Fsettings.json\",\n",[149,335,337,340],{"class":151,"line":336},9,[149,338,339],{"class":320},"\u002F\u002F   \"C:\\\\ProgramData\u002Fgemini-cli\u002Fsettings.json\"",[149,341,342],{"class":320},"   \u002F\u002F %PROGRAMDATA% from the environment\n",[149,344,346],{"class":151,"line":345},10,[149,347,348],{"class":320},"\u002F\u002F ]\n",[115,350,351,352,355,356,359,360,355,363,359,366,355,369,372,373,359,376,379,380,382,383,385],{},"Without options, ",[119,353,354],{},"platform"," is ",[119,357,358],{},"process.platform",", ",[119,361,362],{},"homeDir",[119,364,365],{},"os.homedir()",[119,367,368],{},"projectRoot",[119,370,371],{},"process.cwd()",". An unsupported platform string throws; the three that work are ",[119,374,375],{},"linux",[119,377,378],{},"darwin"," and ",[119,381,252],{},". An unset ",[119,384,133],{}," stays as written, which is easy to spot and better than an empty string in the middle of a path.",[115,387,388,389,392,393,395],{},"Relative templates stay relative. ",[119,390,391],{},".claude\u002Fskills\u002F"," is meant to be joined with whatever project you are looking at, and ",[119,394,137],{}," does not pretend to know which one.",[115,397,398,401],{},[119,399,400],{},"resolvePathTemplate(template, options)"," is exported on its own for a path you got from somewhere else.",[110,403,405],{"id":404},"platforms","Platforms",[115,407,408,409,412,413,415,416,419,420,422],{},"A ",[119,410,411],{},"PathCandidate"," without ",[119,414,404],{}," applies everywhere. One with ",[119,417,418],{},"platforms: [\"darwin\"]"," is dropped by ",[119,421,137],{}," on Linux and Windows. The raw arrays on the harness keep every entry, so a tool that wants to show all of them can.",[115,424,425,426,429,430,433],{},"The tags are only set where paths really differ. OpenCode and Freebuff use ",[119,427,428],{},"~\u002F.config\u002F..."," on every platform including Windows, and the registry says so in a note instead of inventing an ",[119,431,432],{},"%APPDATA%"," variant nobody verified.",[110,435,437],{"id":436},"notes","Notes",[115,439,408,440,443],{},[119,441,442],{},"note"," is there when the path alone would mislead:",[445,446,447,454,464],"ul",{},[448,449,450,453],"li",{},[119,451,452],{},"~\u002F.claude\u002Fprojects\u002F\u003Cdash-encoded-cwd>\u002F*.jsonl"," - the placeholder tells you the directory name is derived, not literal.",[448,455,456,459,460,463],{},[119,457,458],{},"~\u002F.codex\u002Fskills\u002F"," - deprecated in favour of ",[119,461,462],{},"~\u002F.agents\u002Fskills\u002F",", kept because installs still have it.",[448,465,466,468],{},[119,467,391],{}," under Cursor, Copilot, OpenCode and Mastra Code - those harnesses read Claude's directory natively, which decides where a shared skill has to live.",[115,470,471],{},"Read them. A path without its note is how a shared skill ends up in a directory nobody scans.",[110,473,475],{"id":474},"scopes","Scopes",[477,478,479,492],"table",{},[480,481,482],"thead",{},[483,484,485,489],"tr",{},[486,487,488],"th",{},"Scope",[486,490,491],{},"Means",[493,494,495,506,516,526],"tbody",{},[483,496,497,503],{},[498,499,500],"td",{},[119,501,502],{},"user",[498,504,505],{},"Settings of one user, under the home directory",[483,507,508,513],{},[498,509,510],{},[119,511,512],{},"project",[498,514,515],{},"Inside a repository, relative to its root",[483,517,518,523],{},[498,519,520],{},[119,521,522],{},"system",[498,524,525],{},"For the whole machine, usually managed by an administrator",[483,527,528,533],{},[498,529,530],{},[119,531,532],{},"data",[498,534,535],{},"Transcripts, histories and databases the harness writes for itself",[115,537,538,541,542,544,545,548,549,551],{},[119,539,540],{},"sessions"," entries are ",[119,543,532],{},". Config files under ",[119,546,547],{},"~\u002F.config"," are ",[119,550,502],{},", even on the harnesses that keep their database there too.",[110,553,555],{"id":554},"detection","Detection",[140,557,559],{"className":142,"code":558,"language":144,"meta":145,"style":145},"harness.detectEnv(); \u002F\u002F any of detection.envVars set to something\nharness.detectProject(cwd); \u002F\u002F any of detection.projectMarkers exists under cwd\nharness.isInstalled(); \u002F\u002F any of binaries found on PATH\nharness.version; \u002F\u002F first semver in `\u003Cbinary> --version`, or null\n",[119,560,561,577,597,611],{"__ignoreMap":145},[149,562,563,566,568,571,574],{"class":151,"line":152},[149,564,565],{"class":233},"harness",[149,567,236],{"class":159},[149,569,570],{"class":209},"detectEnv",[149,572,573],{"class":159},"(); ",[149,575,576],{"class":320},"\u002F\u002F any of detection.envVars set to something\n",[149,578,579,581,583,586,588,591,594],{"class":151,"line":188},[149,580,565],{"class":233},[149,582,236],{"class":159},[149,584,585],{"class":209},"detectProject",[149,587,212],{"class":159},[149,589,590],{"class":233},"cwd",[149,592,593],{"class":159},"); ",[149,595,596],{"class":320},"\u002F\u002F any of detection.projectMarkers exists under cwd\n",[149,598,599,601,603,606,608],{"class":151,"line":195},[149,600,565],{"class":233},[149,602,236],{"class":159},[149,604,605],{"class":209},"isInstalled",[149,607,573],{"class":159},[149,609,610],{"class":320},"\u002F\u002F any of binaries found on PATH\n",[149,612,613,615,617,620,623],{"class":151,"line":225},[149,614,565],{"class":233},[149,616,236],{"class":159},[149,618,619],{"class":233},"version",[149,621,622],{"class":159},"; ",[149,624,625],{"class":320},"\u002F\u002F first semver in `\u003Cbinary> --version`, or null\n",[115,627,628,631,632,635,636,379,639,642],{},[119,629,630],{},"detectHarness(cwd)"," combines them: env first, then a single project match, else ",[119,633,634],{},"null",". ",[119,637,638],{},"detectHarnessFromEnv()",[119,640,641],{},"detectProjectHarnesses(cwd)"," are the two halves, exported separately.",[110,644,646],{"id":645},"in-the-cli","In the CLI",[140,648,652],{"className":649,"code":650,"language":651,"meta":145,"style":145},"language-bash shiki shiki-themes github-light github-light poimandres","harnesses info claude          # the raw registry entries\nharnesses paths claude         # resolved for this machine\nharnesses paths codex --json   # same, as JSON\n","bash",[119,653,654,670,682],{"__ignoreMap":145},[149,655,656,660,664,667],{"class":151,"line":152},[149,657,659],{"class":658},"sseY5","harnesses",[149,661,663],{"class":662},"sX7Zv"," info",[149,665,666],{"class":662}," claude",[149,668,669],{"class":320},"          # the raw registry entries\n",[149,671,672,674,677,679],{"class":151,"line":188},[149,673,659],{"class":658},[149,675,676],{"class":662}," paths",[149,678,666],{"class":662},[149,680,681],{"class":320},"         # resolved for this machine\n",[149,683,684,686,688,691,695],{"class":151,"line":195},[149,685,659],{"class":658},[149,687,676],{"class":662},[149,689,690],{"class":662}," codex",[149,692,694],{"class":693},"sqT1Y"," --json",[149,696,697],{"class":320},"   # same, as JSON\n",[115,699,700,701,706],{},"Or in the ",[702,703,705],"a",{"href":704},"\u002Fexplorer","explorer",", for a platform and home directory that isn't yours.",[708,709,710],"style",{},"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 .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .stM5N, html code.shiki .stM5N{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#5FB3A1}html pre.shiki code .s1jWp, html code.shiki .s1jWp{--shiki-light:#E36209;--shiki-default:#E36209;--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 .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 .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":145,"searchDepth":188,"depth":188,"links":712},[713,714,715,716,717,718],{"id":112,"depth":188,"text":113},{"id":404,"depth":188,"text":405},{"id":436,"depth":188,"text":437},{"id":474,"depth":188,"text":475},{"id":554,"depth":188,"text":555},{"id":645,"depth":188,"text":646},"How resolve expands a template, what a platform tag hides, and why some paths carry a note.","md",null,{"icon":723},"i-solar-map-point-linear",{"title":12,"description":719},"LidUuwtjqugcLduTV7NdlOjaoBbXnnj6Jvm3XNYJs2U",[727,729],{"title":10,"path":6,"stem":7,"description":728,"children":-1},"Install, read one harness's paths, detect which agent you're inside. The shape every harness shares.",{"title":16,"path":17,"stem":18,"description":730,"children":-1},"One invoke call, six modes without fallback, timeouts that clean up the whole process group, native model listing.",1788622197937]