[{"data":1,"prerenderedAt":1161},["ShallowReactive",2],{"indicators:getting-started/with-an-agent":3},{"slug":4,"filePath":5,"frontmatter":6,"rawMarkdown":11,"tree":12},"getting-started/with-an-agent","getting-started/with-an-agent.md",{"title":7,"description":8,"order":9,"section":10},"Author with an agent","om chat and any MCP client that connects to om share one set of Indicator tools: the agent scaffolds a workspace, writes the source, builds and installs the…",9,"getting-started","---\ntitle: \"Author with an agent\"\ndescription: \"om chat and any MCP client that connects to om share one set of Indicator tools: the agent scaffolds a workspace, writes the source, builds and installs the…\"\norder: 9\nsection: \"getting-started\"\n---\n\n\u003C!-- source: docs/indicators/getting-started/with-an-agent.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit -->\n\n# Author with an agent\n\n`om chat` and any MCP client that connects to `om` share one set of\nIndicator tools: the agent scaffolds a workspace, writes the source, builds\nand installs the draft, draws it on your chart, reads a value, and\npublishes only after you say yes. This page is that loop, what each step\nneeds from you, and how an assistant with no tools gets the same knowledge\nthrough the docs bundle. kScript (legacy) has no authoring tools in `om`;\nasked for a kScript, the agent ports it to an Indicator instead.\n\n## The loop in `om chat`\n\nDescribe the indicator in plain words: a 20-bar average with a band shaded\naround it, the buy share of each bar's volume profile, a conviction score\nover a Polymarket market. The agent reads the authoring skill first\n(`skill_read wrun`: the declaration grammar, the sheet dialect, the pins,\nthe refusals), then runs the loop:\n\n| Step | Tool | What happens |\n| --- | --- | --- |\n| 1. Write | `wrun_author` | Scaffolds a workspace from a template on the first call and writes `src/indicator.ts` (and a hand-written sheet when the workspace is metadata-first). Validation warnings come back to fix; nothing runs yet, so no approval is needed. |\n| 2. Build | `wrun_build` | Compiles the workspace and installs the draft on your machine in the same step; the result carries the receipt and the one-command undo (`om indicator remove @scope/name`). A compile error comes back as the compiler's diagnostics, and the agent rewrites and builds again. |\n| 3. Look | `chart_indicator_preview`, `metric_get` | Draws one output on your active chart pane as an ephemeral preview line (no publish, no server compute), and reads a value with its params, so you see a number before you trust a shape. |\n| 4. Publish | `package_publish` | `dry_run: true` first (the files, size and sha256; nothing uploads), then the real publish behind an approval card you answer: the release lands on the OpenMarket platform as a script, with the source entry beside the module, and `script_id` lands it on a script you already own. |\n\nThe registry verbs stay consent-gated: the agent proposes, you approve on\nthe card, `package_install` for someone else's package and\n`package_publish` for yours. An odds input is pinned with `wrun_source_set`\n(a Polymarket market by search or condition id), and `wrun_list` names what\nis installed.\n\n```bash\nom chat\n```\n\n## Over MCP: Claude Desktop, Cursor and others\n\nThe same tools serve any MCP client. `om setup claude-desktop` and\n`om setup cursor-mcp` register `om mcp serve --stdio` in the client's\nconfig with the standalone `om` binary (never a development interpreter),\nand over MCP `yes: true` completes an install or a publish only after your\nexplicit intent, the way the card does in chat.\n\n```bash\nom setup claude-desktop\nom setup cursor-mcp\nom mcp serve --stdio\n```\n\n## An assistant with no tools\n\nEvery page of this documentation is bundled into one file, `llms-full.txt`,\nserved beside the docs. Attach it to any assistant and it knows the exact\ndeclaration grammar, the four functions and the TA classes, so generated\nIndicators compile instead of guessing at an API. Paste the result into the\neditor or a workspace and run it: the compiler and the sheet validator\nrefuse anything that does not fit, and\n[Common errors](../faq/common-errors.md) maps every message to its fix.\n\n## What the agent will not do\n\n- Say a `wrun/` metric is installed from memory: it re-reads `wrun_list` or\n  `metric_list`, or calls `metric_get`, because packages come and go\n  mid-conversation.\n- Mount an unpublished draft on a hosted chart: `chart_indicator_add` takes\n  registry packages only, and a package with a bindable odds input is\n  refused there; the preview is the draft lane.\n- Publish under `@local`: the registry rejects the scope, so the agent\n  re-authors the same source under your own account scope before\n  publishing.\n",{"type":13,"children":14,"data":1155,"position":1157},"root",[15,25,28,29,100,101,132,133,169,171,585,586,674,675,703,704,719,720,829,830,896,897,912,913,969,970,986,987],{"type":16,"value":17,"position":18},"comment"," source: docs/indicators/getting-started/with-an-agent.md; generated by packages/cli/scripts/gen-indicator-docs.ts, do not edit ",{"start":19,"end":22},{"line":20,"column":20,"offset":21},1,0,{"line":20,"column":23,"offset":24},136,135,{"type":26,"value":27},"text","\n",{"type":26,"value":27},{"type":30,"tagName":31,"properties":32,"children":33,"position":97},"element","p",{},[34,50,57,70,77,89],{"type":30,"tagName":35,"properties":36,"children":37,"position":47},"code",{},[38],{"type":26,"value":39,"position":40},"om chat",{"start":41,"end":44},{"line":42,"column":20,"offset":43},5,161,{"line":42,"column":45,"offset":46},10,170,{"start":48,"end":49},{"line":42,"column":20,"offset":43},{"line":42,"column":45,"offset":46},{"type":26,"value":51,"position":52}," and any MCP client that connects to ",{"start":53,"end":54},{"line":42,"column":45,"offset":46},{"line":42,"column":55,"offset":56},47,207,{"type":30,"tagName":35,"properties":58,"children":59,"position":67},{},[60],{"type":26,"value":61,"position":62},"om",{"start":63,"end":64},{"line":42,"column":55,"offset":56},{"line":42,"column":65,"offset":66},51,211,{"start":68,"end":69},{"line":42,"column":55,"offset":56},{"line":42,"column":65,"offset":66},{"type":26,"value":71,"position":72}," share one set of\nIndicator tools: the agent scaffolds a workspace, writes the source, builds\nand installs the draft, draws it on your chart, reads a value, and\npublishes only after you say yes. This page is that loop, what each step\nneeds from you, and how an assistant with no tools gets the same knowledge\nthrough the docs bundle. kScript (legacy) has no authoring tools in ",{"start":73,"end":74},{"line":42,"column":65,"offset":66},{"line":45,"column":75,"offset":76},69,588,{"type":30,"tagName":35,"properties":78,"children":79,"position":86},{},[80],{"type":26,"value":61,"position":81},{"start":82,"end":83},{"line":45,"column":75,"offset":76},{"line":45,"column":84,"offset":85},73,592,{"start":87,"end":88},{"line":45,"column":75,"offset":76},{"line":45,"column":84,"offset":85},{"type":26,"value":90,"position":91},";\nasked for a kScript, the agent ports it to an Indicator instead.",{"start":92,"end":93},{"line":45,"column":84,"offset":85},{"line":94,"column":95,"offset":96},11,65,658,{"start":98,"end":99},{"line":42,"column":20,"offset":43},{"line":94,"column":95,"offset":96},{"type":26,"value":27},{"type":30,"tagName":102,"properties":103,"children":105,"position":128},"h2",{"id":104},"the-loop-in-om-chat",[106,116],{"type":26,"value":107,"position":108},"The loop in ",{"start":109,"end":113},{"line":110,"column":111,"offset":112},13,4,663,{"line":110,"column":114,"offset":115},16,675,{"type":30,"tagName":35,"properties":117,"children":118,"position":125},{},[119],{"type":26,"value":39,"position":120},{"start":121,"end":122},{"line":110,"column":114,"offset":115},{"line":110,"column":123,"offset":124},25,684,{"start":126,"end":127},{"line":110,"column":114,"offset":115},{"line":110,"column":123,"offset":124},{"start":129,"end":131},{"line":110,"column":20,"offset":130},660,{"line":110,"column":123,"offset":124},{"type":26,"value":27},{"type":30,"tagName":31,"properties":134,"children":135,"position":166},{},[136,146,159],{"type":26,"value":137,"position":138},"Describe the indicator in plain words: a 20-bar average with a band shaded\naround it, the buy share of each bar's volume profile, a conviction score\nover a Polymarket market. The agent reads the authoring skill first\n(",{"start":139,"end":142},{"line":140,"column":20,"offset":141},15,686,{"line":143,"column":144,"offset":145},18,2,904,{"type":30,"tagName":35,"properties":147,"children":148,"position":156},{},[149],{"type":26,"value":150,"position":151},"skill_read wrun",{"start":152,"end":153},{"line":143,"column":144,"offset":145},{"line":143,"column":154,"offset":155},19,921,{"start":157,"end":158},{"line":143,"column":144,"offset":145},{"line":143,"column":154,"offset":155},{"type":26,"value":160,"position":161},": the declaration grammar, the sheet dialect, the pins,\nthe refusals), then runs the loop:",{"start":162,"end":163},{"line":143,"column":154,"offset":155},{"line":154,"column":164,"offset":165},35,1011,{"start":167,"end":168},{"line":140,"column":20,"offset":141},{"line":154,"column":164,"offset":165},{"type":26,"value":170},"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",{"type":30,"tagName":172,"properties":173,"children":174,"position":582},"table",{},[175,241],{"type":30,"tagName":176,"properties":177,"children":178,"position":238},"thead",{},[179],{"type":30,"tagName":180,"properties":181,"children":182,"position":235},"tr",{},[183,203,218],{"type":30,"tagName":184,"properties":185,"children":186,"position":197},"th",{},[187],{"type":26,"value":188,"position":189},"Step",{"start":190,"end":194},{"line":191,"column":192,"offset":193},21,3,1015,{"line":191,"column":195,"offset":196},7,1019,{"start":198,"end":200},{"line":191,"column":20,"offset":199},1013,{"line":191,"column":201,"offset":202},8,1020,{"type":30,"tagName":184,"properties":204,"children":205,"position":214},{},[206],{"type":26,"value":207,"position":208},"Tool",{"start":209,"end":211},{"line":191,"column":45,"offset":210},1022,{"line":191,"column":212,"offset":213},14,1026,{"start":215,"end":216},{"line":191,"column":201,"offset":202},{"line":191,"column":140,"offset":217},1027,{"type":30,"tagName":184,"properties":219,"children":220,"position":230},{},[221],{"type":26,"value":222,"position":223},"What happens",{"start":224,"end":227},{"line":191,"column":225,"offset":226},17,1029,{"line":191,"column":228,"offset":229},29,1041,{"start":231,"end":232},{"line":191,"column":140,"offset":217},{"line":191,"column":233,"offset":234},31,1043,{"start":236,"end":237},{"line":191,"column":20,"offset":199},{"line":191,"column":233,"offset":234},{"start":239,"end":240},{"line":191,"column":20,"offset":199},{"line":191,"column":233,"offset":234},{"type":30,"tagName":242,"properties":243,"children":244,"position":579},"tbody",{},[245,328,407,487],{"type":30,"tagName":180,"properties":246,"children":247,"position":325},{},[248,266,288],{"type":30,"tagName":249,"properties":250,"children":251,"position":260},"td",{},[252],{"type":26,"value":253,"position":254},"1. Write",{"start":255,"end":258},{"line":256,"column":192,"offset":257},23,1066,{"line":256,"column":94,"offset":259},1074,{"start":261,"end":263},{"line":256,"column":20,"offset":262},1064,{"line":256,"column":264,"offset":265},12,1075,{"type":30,"tagName":249,"properties":267,"children":268,"position":283},{},[269],{"type":30,"tagName":35,"properties":270,"children":271,"position":280},{},[272],{"type":26,"value":273,"position":274},"wrun_author",{"start":275,"end":277},{"line":256,"column":212,"offset":276},1077,{"line":256,"column":278,"offset":279},27,1090,{"start":281,"end":282},{"line":256,"column":212,"offset":276},{"line":256,"column":278,"offset":279},{"start":284,"end":285},{"line":256,"column":264,"offset":265},{"line":256,"column":286,"offset":287},28,1091,{"type":30,"tagName":249,"properties":289,"children":290,"position":320},{},[291,300,313],{"type":26,"value":292,"position":293},"Scaffolds a workspace from a template on the first call and writes ",{"start":294,"end":297},{"line":256,"column":295,"offset":296},30,1093,{"line":256,"column":298,"offset":299},97,1160,{"type":30,"tagName":35,"properties":301,"children":302,"position":310},{},[303],{"type":26,"value":304,"position":305},"src/indicator.ts",{"start":306,"end":307},{"line":256,"column":298,"offset":299},{"line":256,"column":308,"offset":309},115,1178,{"start":311,"end":312},{"line":256,"column":298,"offset":299},{"line":256,"column":308,"offset":309},{"type":26,"value":314,"position":315}," (and a hand-written sheet when the workspace is metadata-first). Validation warnings come back to fix; nothing runs yet, so no approval is needed.",{"start":316,"end":317},{"line":256,"column":308,"offset":309},{"line":256,"column":318,"offset":319},262,1325,{"start":321,"end":322},{"line":256,"column":286,"offset":287},{"line":256,"column":323,"offset":324},264,1327,{"start":326,"end":327},{"line":256,"column":20,"offset":262},{"line":256,"column":323,"offset":324},{"type":30,"tagName":180,"properties":329,"children":330,"position":404},{},[331,347,368],{"type":30,"tagName":249,"properties":332,"children":333,"position":342},{},[334],{"type":26,"value":335,"position":336},"2. Build",{"start":337,"end":340},{"line":338,"column":192,"offset":339},24,1330,{"line":338,"column":94,"offset":341},1338,{"start":343,"end":345},{"line":338,"column":20,"offset":344},1328,{"line":338,"column":264,"offset":346},1339,{"type":30,"tagName":249,"properties":348,"children":349,"position":364},{},[350],{"type":30,"tagName":35,"properties":351,"children":352,"position":361},{},[353],{"type":26,"value":354,"position":355},"wrun_build",{"start":356,"end":358},{"line":338,"column":212,"offset":357},1341,{"line":338,"column":359,"offset":360},26,1353,{"start":362,"end":363},{"line":338,"column":212,"offset":357},{"line":338,"column":359,"offset":360},{"start":365,"end":366},{"line":338,"column":264,"offset":346},{"line":338,"column":278,"offset":367},1354,{"type":30,"tagName":249,"properties":369,"children":370,"position":399},{},[371,379,392],{"type":26,"value":372,"position":373},"Compiles the workspace and installs the draft on your machine in the same step; the result carries the receipt and the one-command undo (",{"start":374,"end":376},{"line":338,"column":228,"offset":375},1356,{"line":338,"column":377,"offset":378},166,1493,{"type":30,"tagName":35,"properties":380,"children":381,"position":389},{},[382],{"type":26,"value":383,"position":384},"om indicator remove @scope/name",{"start":385,"end":386},{"line":338,"column":377,"offset":378},{"line":338,"column":387,"offset":388},199,1526,{"start":390,"end":391},{"line":338,"column":377,"offset":378},{"line":338,"column":387,"offset":388},{"type":26,"value":393,"position":394},"). A compile error comes back as the compiler's diagnostics, and the agent rewrites and builds again.",{"start":395,"end":396},{"line":338,"column":387,"offset":388},{"line":338,"column":397,"offset":398},300,1627,{"start":400,"end":401},{"line":338,"column":278,"offset":367},{"line":338,"column":402,"offset":403},302,1629,{"start":405,"end":406},{"line":338,"column":20,"offset":344},{"line":338,"column":402,"offset":403},{"type":30,"tagName":180,"properties":408,"children":409,"position":484},{},[410,425,467],{"type":30,"tagName":249,"properties":411,"children":412,"position":420},{},[413],{"type":26,"value":414,"position":415},"3. Look",{"start":416,"end":418},{"line":123,"column":192,"offset":417},1632,{"line":123,"column":45,"offset":419},1639,{"start":421,"end":423},{"line":123,"column":20,"offset":422},1630,{"line":123,"column":94,"offset":424},1640,{"type":30,"tagName":249,"properties":426,"children":427,"position":462},{},[428,442,449],{"type":30,"tagName":35,"properties":429,"children":430,"position":439},{},[431],{"type":26,"value":432,"position":433},"chart_indicator_preview",{"start":434,"end":436},{"line":123,"column":110,"offset":435},1642,{"line":123,"column":437,"offset":438},38,1667,{"start":440,"end":441},{"line":123,"column":110,"offset":435},{"line":123,"column":437,"offset":438},{"type":26,"value":443,"position":444},", ",{"start":445,"end":446},{"line":123,"column":437,"offset":438},{"line":123,"column":447,"offset":448},40,1669,{"type":30,"tagName":35,"properties":450,"children":451,"position":459},{},[452],{"type":26,"value":453,"position":454},"metric_get",{"start":455,"end":456},{"line":123,"column":447,"offset":448},{"line":123,"column":457,"offset":458},52,1681,{"start":460,"end":461},{"line":123,"column":447,"offset":448},{"line":123,"column":457,"offset":458},{"start":463,"end":464},{"line":123,"column":94,"offset":424},{"line":123,"column":465,"offset":466},53,1682,{"type":30,"tagName":249,"properties":468,"children":469,"position":479},{},[470],{"type":26,"value":471,"position":472},"Draws one output on your active chart pane as an ephemeral preview line (no publish, no server compute), and reads a value with its params, so you see a number before you trust a shape.",{"start":473,"end":476},{"line":123,"column":474,"offset":475},55,1684,{"line":123,"column":477,"offset":478},240,1869,{"start":480,"end":481},{"line":123,"column":465,"offset":466},{"line":123,"column":482,"offset":483},242,1871,{"start":485,"end":486},{"line":123,"column":20,"offset":422},{"line":123,"column":482,"offset":483},{"type":30,"tagName":180,"properties":488,"children":489,"position":576},{},[490,505,527],{"type":30,"tagName":249,"properties":491,"children":492,"position":500},{},[493],{"type":26,"value":494,"position":495},"4. Publish",{"start":496,"end":498},{"line":359,"column":192,"offset":497},1874,{"line":359,"column":110,"offset":499},1884,{"start":501,"end":503},{"line":359,"column":20,"offset":502},1872,{"line":359,"column":212,"offset":504},1885,{"type":30,"tagName":249,"properties":506,"children":507,"position":522},{},[508],{"type":30,"tagName":35,"properties":509,"children":510,"position":519},{},[511],{"type":26,"value":512,"position":513},"package_publish",{"start":514,"end":516},{"line":359,"column":114,"offset":515},1887,{"line":359,"column":517,"offset":518},33,1904,{"start":520,"end":521},{"line":359,"column":114,"offset":515},{"line":359,"column":517,"offset":518},{"start":523,"end":524},{"line":359,"column":212,"offset":504},{"line":359,"column":525,"offset":526},34,1905,{"type":30,"tagName":249,"properties":528,"children":529,"position":571},{},[530,544,551,564],{"type":30,"tagName":35,"properties":531,"children":532,"position":541},{},[533],{"type":26,"value":534,"position":535},"dry_run: true",{"start":536,"end":539},{"line":359,"column":537,"offset":538},36,1907,{"line":359,"column":65,"offset":540},1922,{"start":542,"end":543},{"line":359,"column":537,"offset":538},{"line":359,"column":65,"offset":540},{"type":26,"value":545,"position":546}," first (the files, size and sha256; nothing uploads), then the real publish behind an approval card you answer: the release lands on the OpenMarket platform as a script, with the source entry beside the module, and ",{"start":547,"end":548},{"line":359,"column":65,"offset":540},{"line":359,"column":549,"offset":550},266,2137,{"type":30,"tagName":35,"properties":552,"children":553,"position":561},{},[554],{"type":26,"value":555,"position":556},"script_id",{"start":557,"end":558},{"line":359,"column":549,"offset":550},{"line":359,"column":559,"offset":560},277,2148,{"start":562,"end":563},{"line":359,"column":549,"offset":550},{"line":359,"column":559,"offset":560},{"type":26,"value":565,"position":566}," lands it on a script you already own.",{"start":567,"end":568},{"line":359,"column":559,"offset":560},{"line":359,"column":569,"offset":570},315,2186,{"start":572,"end":573},{"line":359,"column":525,"offset":526},{"line":359,"column":574,"offset":575},317,2188,{"start":577,"end":578},{"line":359,"column":20,"offset":502},{"line":359,"column":574,"offset":575},{"start":580,"end":581},{"line":256,"column":20,"offset":262},{"line":359,"column":574,"offset":575},{"start":583,"end":584},{"line":191,"column":20,"offset":199},{"line":359,"column":574,"offset":575},{"type":26,"value":27},{"type":30,"tagName":31,"properties":587,"children":588,"position":671},{},[589,596,608,614,625,632,645,652,664],{"type":26,"value":590,"position":591},"The registry verbs stay consent-gated: the agent proposes, you approve on\nthe card, ",{"start":592,"end":594},{"line":286,"column":20,"offset":593},2190,{"line":228,"column":94,"offset":595},2274,{"type":30,"tagName":35,"properties":597,"children":598,"position":605},{},[599],{"type":26,"value":600,"position":601},"package_install",{"start":602,"end":603},{"line":228,"column":94,"offset":595},{"line":228,"column":286,"offset":604},2291,{"start":606,"end":607},{"line":228,"column":94,"offset":595},{"line":228,"column":286,"offset":604},{"type":26,"value":609,"position":610}," for someone else's package and\n",{"start":611,"end":612},{"line":228,"column":286,"offset":604},{"line":295,"column":20,"offset":613},2323,{"type":30,"tagName":35,"properties":615,"children":616,"position":622},{},[617],{"type":26,"value":512,"position":618},{"start":619,"end":620},{"line":295,"column":20,"offset":613},{"line":295,"column":143,"offset":621},2340,{"start":623,"end":624},{"line":295,"column":20,"offset":613},{"line":295,"column":143,"offset":621},{"type":26,"value":626,"position":627}," for yours. An odds input is pinned with ",{"start":628,"end":629},{"line":295,"column":143,"offset":621},{"line":295,"column":630,"offset":631},59,2381,{"type":30,"tagName":35,"properties":633,"children":634,"position":642},{},[635],{"type":26,"value":636,"position":637},"wrun_source_set",{"start":638,"end":639},{"line":295,"column":630,"offset":631},{"line":295,"column":640,"offset":641},76,2398,{"start":643,"end":644},{"line":295,"column":630,"offset":631},{"line":295,"column":640,"offset":641},{"type":26,"value":646,"position":647},"\n(a Polymarket market by search or condition id), and ",{"start":648,"end":649},{"line":295,"column":640,"offset":641},{"line":233,"column":650,"offset":651},54,2452,{"type":30,"tagName":35,"properties":653,"children":654,"position":661},{},[655],{"type":26,"value":656,"position":657},"wrun_list",{"start":658,"end":659},{"line":233,"column":650,"offset":651},{"line":233,"column":95,"offset":660},2463,{"start":662,"end":663},{"line":233,"column":650,"offset":651},{"line":233,"column":95,"offset":660},{"type":26,"value":665,"position":666}," names what\nis installed.",{"start":667,"end":668},{"line":233,"column":95,"offset":660},{"line":669,"column":212,"offset":670},32,2488,{"start":672,"end":673},{"line":286,"column":20,"offset":593},{"line":669,"column":212,"offset":670},{"type":26,"value":27},{"type":13,"children":676},[677],{"type":30,"tagName":678,"properties":679,"children":683,"data":-1},"pre",{"class":680,"style":681,"tabindex":682},"shiki shiki-themes github-dark github-light","--shiki-dark:#e1e4e8;--shiki-light:#24292e;--shiki-dark-bg:#24292e;--shiki-light-bg:#fff","0",[684],{"type":30,"tagName":35,"properties":685,"children":686},{},[687],{"type":30,"tagName":688,"properties":689,"children":691},"span",{"class":690},"line",[692,697],{"type":30,"tagName":688,"properties":693,"children":695},{"style":694},"--shiki-dark:#B392F0;--shiki-light:#6F42C1",[696],{"type":26,"value":61},{"type":30,"tagName":688,"properties":698,"children":700},{"style":699},"--shiki-dark:#9ECBFF;--shiki-light:#032F62",[701],{"type":26,"value":702}," chat",{"type":26,"value":27},{"type":30,"tagName":102,"properties":705,"children":707,"position":715},{"id":706},"over-mcp-claude-desktop-cursor-and-others",[708],{"type":26,"value":709,"position":710},"Over MCP: Claude Desktop, Cursor and others",{"start":711,"end":713},{"line":437,"column":111,"offset":712},2514,{"line":437,"column":55,"offset":714},2557,{"start":716,"end":718},{"line":437,"column":20,"offset":717},2511,{"line":437,"column":55,"offset":714},{"type":26,"value":27},{"type":30,"tagName":31,"properties":721,"children":722,"position":826},{},[723,730,743,750,763,769,781,788,799,806,818],{"type":26,"value":724,"position":725},"The same tools serve any MCP client. ",{"start":726,"end":728},{"line":447,"column":20,"offset":727},2559,{"line":447,"column":437,"offset":729},2596,{"type":30,"tagName":35,"properties":731,"children":732,"position":740},{},[733],{"type":26,"value":734,"position":735},"om setup claude-desktop",{"start":736,"end":737},{"line":447,"column":437,"offset":729},{"line":447,"column":738,"offset":739},63,2621,{"start":741,"end":742},{"line":447,"column":437,"offset":729},{"line":447,"column":738,"offset":739},{"type":26,"value":744,"position":745}," and\n",{"start":746,"end":747},{"line":447,"column":738,"offset":739},{"line":748,"column":20,"offset":749},41,2626,{"type":30,"tagName":35,"properties":751,"children":752,"position":760},{},[753],{"type":26,"value":754,"position":755},"om setup cursor-mcp",{"start":756,"end":757},{"line":748,"column":20,"offset":749},{"line":748,"column":758,"offset":759},22,2647,{"start":761,"end":762},{"line":748,"column":20,"offset":749},{"line":748,"column":758,"offset":759},{"type":26,"value":764,"position":765}," register ",{"start":766,"end":767},{"line":748,"column":758,"offset":759},{"line":748,"column":669,"offset":768},2657,{"type":30,"tagName":35,"properties":770,"children":771,"position":778},{},[772],{"type":26,"value":773,"position":774},"om mcp serve --stdio",{"start":775,"end":776},{"line":748,"column":669,"offset":768},{"line":748,"column":650,"offset":777},2679,{"start":779,"end":780},{"line":748,"column":669,"offset":768},{"line":748,"column":650,"offset":777},{"type":26,"value":782,"position":783}," in the client's\nconfig with the standalone ",{"start":784,"end":785},{"line":748,"column":650,"offset":777},{"line":786,"column":286,"offset":787},42,2723,{"type":30,"tagName":35,"properties":789,"children":790,"position":796},{},[791],{"type":26,"value":61,"position":792},{"start":793,"end":794},{"line":786,"column":286,"offset":787},{"line":786,"column":669,"offset":795},2727,{"start":797,"end":798},{"line":786,"column":286,"offset":787},{"line":786,"column":669,"offset":795},{"type":26,"value":800,"position":801}," binary (never a development interpreter),\nand over MCP ",{"start":802,"end":803},{"line":786,"column":669,"offset":795},{"line":804,"column":212,"offset":805},43,2783,{"type":30,"tagName":35,"properties":807,"children":808,"position":815},{},[809],{"type":26,"value":810,"position":811},"yes: true",{"start":812,"end":813},{"line":804,"column":212,"offset":805},{"line":804,"column":123,"offset":814},2794,{"start":816,"end":817},{"line":804,"column":212,"offset":805},{"line":804,"column":123,"offset":814},{"type":26,"value":819,"position":820}," completes an install or a publish only after your\nexplicit intent, the way the card does in chat.",{"start":821,"end":822},{"line":804,"column":123,"offset":814},{"line":823,"column":824,"offset":825},44,48,2892,{"start":827,"end":828},{"line":447,"column":20,"offset":727},{"line":823,"column":824,"offset":825},{"type":26,"value":27},{"type":13,"children":831},[832],{"type":30,"tagName":678,"properties":833,"children":834,"data":-1},{"class":680,"style":681,"tabindex":682},[835],{"type":30,"tagName":35,"properties":836,"children":837},{},[838,855,856,872,873],{"type":30,"tagName":688,"properties":839,"children":840},{"class":690},[841,845,850],{"type":30,"tagName":688,"properties":842,"children":843},{"style":694},[844],{"type":26,"value":61},{"type":30,"tagName":688,"properties":846,"children":847},{"style":699},[848],{"type":26,"value":849}," setup",{"type":30,"tagName":688,"properties":851,"children":852},{"style":699},[853],{"type":26,"value":854}," claude-desktop",{"type":26,"value":27},{"type":30,"tagName":688,"properties":857,"children":858},{"class":690},[859,863,867],{"type":30,"tagName":688,"properties":860,"children":861},{"style":694},[862],{"type":26,"value":61},{"type":30,"tagName":688,"properties":864,"children":865},{"style":699},[866],{"type":26,"value":849},{"type":30,"tagName":688,"properties":868,"children":869},{"style":699},[870],{"type":26,"value":871}," cursor-mcp",{"type":26,"value":27},{"type":30,"tagName":688,"properties":874,"children":875},{"class":690},[876,880,885,890],{"type":30,"tagName":688,"properties":877,"children":878},{"style":694},[879],{"type":26,"value":61},{"type":30,"tagName":688,"properties":881,"children":882},{"style":699},[883],{"type":26,"value":884}," mcp",{"type":30,"tagName":688,"properties":886,"children":887},{"style":699},[888],{"type":26,"value":889}," serve",{"type":30,"tagName":688,"properties":891,"children":893},{"style":892},"--shiki-dark:#79B8FF;--shiki-light:#005CC5",[894],{"type":26,"value":895}," --stdio",{"type":26,"value":27},{"type":30,"tagName":102,"properties":898,"children":900,"position":908},{"id":899},"an-assistant-with-no-tools",[901],{"type":26,"value":902,"position":903},"An assistant with no tools",{"start":904,"end":906},{"line":457,"column":111,"offset":905},2975,{"line":457,"column":295,"offset":907},3001,{"start":909,"end":911},{"line":457,"column":20,"offset":910},2972,{"line":457,"column":295,"offset":907},{"type":26,"value":27},{"type":30,"tagName":31,"properties":914,"children":915,"position":966},{},[916,924,937,943,959],{"type":26,"value":917,"position":918},"Every page of this documentation is bundled into one file, ",{"start":919,"end":921},{"line":650,"column":20,"offset":920},3003,{"line":650,"column":922,"offset":923},60,3062,{"type":30,"tagName":35,"properties":925,"children":926,"position":934},{},[927],{"type":26,"value":928,"position":929},"llms-full.txt",{"start":930,"end":931},{"line":650,"column":922,"offset":923},{"line":650,"column":932,"offset":933},75,3077,{"start":935,"end":936},{"line":650,"column":922,"offset":923},{"line":650,"column":932,"offset":933},{"type":26,"value":938,"position":939},",\nserved beside the docs. Attach it to any assistant and it knows the exact\ndeclaration grammar, the four functions and the TA classes, so generated\nIndicators compile instead of guessing at an API. Paste the result into the\neditor or a workspace and run it: the compiler and the sheet validator\nrefuse anything that does not fit, and\n",{"start":940,"end":941},{"line":650,"column":932,"offset":933},{"line":922,"column":20,"offset":942},3412,{"type":30,"tagName":944,"properties":945,"children":947,"position":955},"a",{"href":946},"../faq/common-errors.md",[948],{"type":26,"value":949,"position":950},"Common errors",{"start":951,"end":953},{"line":922,"column":144,"offset":952},3413,{"line":922,"column":140,"offset":954},3426,{"start":956,"end":957},{"line":922,"column":20,"offset":942},{"line":922,"column":748,"offset":958},3452,{"type":26,"value":960,"position":961}," maps every message to its fix.",{"start":962,"end":963},{"line":922,"column":748,"offset":958},{"line":922,"column":964,"offset":965},72,3483,{"start":967,"end":968},{"line":650,"column":20,"offset":920},{"line":922,"column":964,"offset":965},{"type":26,"value":27},{"type":30,"tagName":102,"properties":971,"children":973,"position":982},{"id":972},"what-the-agent-will-not-do",[974],{"type":26,"value":975,"position":976},"What the agent will not do",{"start":977,"end":980},{"line":978,"column":111,"offset":979},62,3488,{"line":978,"column":295,"offset":981},3514,{"start":983,"end":985},{"line":978,"column":20,"offset":984},3485,{"line":978,"column":295,"offset":981},{"type":26,"value":27},{"type":30,"tagName":988,"properties":989,"children":990,"position":1152},"ul",{},[991,992,1082,1083,1118,1119,1151],{"type":26,"value":27},{"type":30,"tagName":993,"properties":994,"children":995,"position":1078},"li",{},[996,1004,1016,1022,1033,1039,1052,1058,1070],{"type":26,"value":997,"position":998},"Say a ",{"start":999,"end":1002},{"line":1000,"column":192,"offset":1001},64,3518,{"line":1000,"column":9,"offset":1003},3524,{"type":30,"tagName":35,"properties":1005,"children":1006,"position":1013},{},[1007],{"type":26,"value":1008,"position":1009},"wrun/",{"start":1010,"end":1011},{"line":1000,"column":9,"offset":1003},{"line":1000,"column":114,"offset":1012},3531,{"start":1014,"end":1015},{"line":1000,"column":9,"offset":1003},{"line":1000,"column":114,"offset":1012},{"type":26,"value":1017,"position":1018}," metric is installed from memory: it re-reads ",{"start":1019,"end":1020},{"line":1000,"column":114,"offset":1012},{"line":1000,"column":978,"offset":1021},3577,{"type":30,"tagName":35,"properties":1023,"children":1024,"position":1030},{},[1025],{"type":26,"value":656,"position":1026},{"start":1027,"end":1028},{"line":1000,"column":978,"offset":1021},{"line":1000,"column":84,"offset":1029},3588,{"start":1031,"end":1032},{"line":1000,"column":978,"offset":1021},{"line":1000,"column":84,"offset":1029},{"type":26,"value":1034,"position":1035}," or\n",{"start":1036,"end":1037},{"line":1000,"column":84,"offset":1029},{"line":95,"column":20,"offset":1038},3592,{"type":30,"tagName":35,"properties":1040,"children":1041,"position":1049},{},[1042],{"type":26,"value":1043,"position":1044},"metric_list",{"start":1045,"end":1047},{"line":95,"column":192,"offset":1046},3594,{"line":95,"column":114,"offset":1048},3607,{"start":1050,"end":1051},{"line":95,"column":192,"offset":1046},{"line":95,"column":114,"offset":1048},{"type":26,"value":1053,"position":1054},", or calls ",{"start":1055,"end":1056},{"line":95,"column":114,"offset":1048},{"line":95,"column":278,"offset":1057},3618,{"type":30,"tagName":35,"properties":1059,"children":1060,"position":1067},{},[1061],{"type":26,"value":453,"position":1062},{"start":1063,"end":1064},{"line":95,"column":278,"offset":1057},{"line":95,"column":1065,"offset":1066},39,3630,{"start":1068,"end":1069},{"line":95,"column":278,"offset":1057},{"line":95,"column":1065,"offset":1066},{"type":26,"value":1071,"position":1072},", because packages come and go\nmid-conversation.",{"start":1073,"end":1074},{"line":95,"column":1065,"offset":1066},{"line":1075,"column":1076,"offset":1077},66,20,3680,{"start":1079,"end":1081},{"line":1000,"column":20,"offset":1080},3516,{"line":1075,"column":1076,"offset":1077},{"type":26,"value":27},{"type":30,"tagName":993,"properties":1084,"children":1085,"position":1114},{},[1086,1095,1108],{"type":26,"value":1087,"position":1088},"Mount an unpublished draft on a hosted chart: ",{"start":1089,"end":1092},{"line":1090,"column":192,"offset":1091},67,3683,{"line":1090,"column":1093,"offset":1094},49,3729,{"type":30,"tagName":35,"properties":1096,"children":1097,"position":1105},{},[1098],{"type":26,"value":1099,"position":1100},"chart_indicator_add",{"start":1101,"end":1102},{"line":1090,"column":1093,"offset":1094},{"line":1090,"column":1103,"offset":1104},70,3750,{"start":1106,"end":1107},{"line":1090,"column":1093,"offset":1094},{"line":1090,"column":1103,"offset":1104},{"type":26,"value":1109,"position":1110}," takes\nregistry packages only, and a package with a bindable odds input is\nrefused there; the preview is the draft lane.",{"start":1111,"end":1112},{"line":1090,"column":1103,"offset":1104},{"line":75,"column":824,"offset":1113},3874,{"start":1115,"end":1117},{"line":1090,"column":20,"offset":1116},3681,{"line":75,"column":824,"offset":1113},{"type":26,"value":27},{"type":30,"tagName":993,"properties":1120,"children":1121,"position":1147},{},[1122,1129,1141],{"type":26,"value":1123,"position":1124},"Publish under ",{"start":1125,"end":1127},{"line":1103,"column":192,"offset":1126},3877,{"line":1103,"column":225,"offset":1128},3891,{"type":30,"tagName":35,"properties":1130,"children":1131,"position":1138},{},[1132],{"type":26,"value":1133,"position":1134},"@local",{"start":1135,"end":1136},{"line":1103,"column":225,"offset":1128},{"line":1103,"column":123,"offset":1137},3899,{"start":1139,"end":1140},{"line":1103,"column":225,"offset":1128},{"line":1103,"column":123,"offset":1137},{"type":26,"value":1142,"position":1143},": the registry rejects the scope, so the agent\nre-authors the same source under your own account scope before\npublishing.",{"start":1144,"end":1145},{"line":1103,"column":123,"offset":1137},{"line":964,"column":212,"offset":1146},4024,{"start":1148,"end":1150},{"line":1103,"column":20,"offset":1149},3875,{"line":964,"column":212,"offset":1146},{"type":26,"value":27},{"start":1153,"end":1154},{"line":1000,"column":20,"offset":1080},{"line":964,"column":212,"offset":1146},{"quirksMode":1156},false,{"start":1158,"end":1159},{"line":20,"column":20,"offset":21},{"line":84,"column":20,"offset":1160},4025,1790157136495]