[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-stripe-link-cli":3,"mdc-t4ky16-key":34,"related-repo-stripe-link-cli":1090,"related-org-stripe-link-cli":1148},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"link-cli","authenticate and configure Link CLI","Install and authenticate Link CLI for agent payments, financial insights, or both. Use when a user is setting up Link CLI for the first time, asks to connect or log in to Link, or needs to configure Link access before using payment or financial-data features.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"stripe","Stripe","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fstripe.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Finance","finance","tag",{"name":17,"slug":18,"type":15},"CLI","cli",{"name":20,"slug":21,"type":15},"Payments","payments",{"name":9,"slug":8,"type":15},626,"https:\u002F\u002Fgithub.com\u002Fstripe\u002Flink-cli","2026-09-01T08:30:22.346978",null,83,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"Let your agents spend on your behalf. Your payment credentials are never exposed. You approve every purchase.","https:\u002F\u002Fgithub.com\u002Fstripe\u002Flink-cli\u002Ftree\u002FHEAD\u002Fskills\u002Flink-cli","---\nname: link-cli\ndescription: Install and authenticate Link CLI for agent payments, financial insights, or both. Use when a user is setting up Link CLI for the first time, asks to connect or log in to Link, or needs to configure Link access before using payment or financial-data features.\n---\n\n# Set up Link CLI\n\nSet up and authenticate Link CLI for the user's intended use case. After setup, use the dedicated skill for payment or financial-insight work.\n\n## 1. Determine the use case\n\nInfer the use case only when the user's intent is explicit:\n\n- **Agent payments**: buying, paying, checking out, or obtaining a payment credential.\n- **Financial insights**: reading transactions, balances, connected accounts, or spending patterns.\n- **Both**: enabling payments and financial insights.\n\nIf the intended use case is unclear, present **Both** first and explicitly recommend it as the default before installing, authenticating, or choosing permissions:\n\n```text\nHow do you plan on using Link?\n1. (Recommended) Both: agent payments and financial insights\n2. Agent payments only\n3. Financial insights only\n```\n\nIf the user asks for the default, accepts the recommendation, or has no preference, select **Both**. Otherwise, do not proceed until the user chooses or otherwise clarifies their intention.\n\n## 2. Check authentication first\n\nOnce the use case is known, run `auth status` as the first Link CLI command. Always do this before `auth login`, `auth upgrade`, or any payment or financial-data command:\n\n```bash\nlink-cli auth status --format json\n```\n\nIf `link-cli` is unavailable, install it with `npm install -g @stripe\u002Flink-cli`, then run the status command. Alternatively, replace `link-cli` in every command with `npx @stripe\u002Flink-cli@latest`.\n\n### Common commands\u002Foptions\n\n- List all commands: `link-cli --llms`\n- List all commands with parameters: `link-cli --llms-full`\n- Get a command's exact schema with `--schema`. For example, `link-cli auth login --schema`\n- Multi-step commands return a `_next` action. For example, authenticating returns a `_next.command` that must be run to complete the flow.\n- By default all output is in `toon` format. Pass `--format [json|md|yaml]` to change output format.\n- Some commands return a verification or approval URL. **These** must be presented to the user clearly for their action.\n- `--auth \u003Cpath>` flag to store auth credentials in a specific file instead of the default location. `auth login` writes to this file; all other commands read from it. Example: `link-cli auth login --auth credentials.json --format json`\n\n_Recommended_: Run `link-cli --llms` to understand all the available commands. The `--llms-full` output is the canonical reference for parameter names, types, and valid values. Pass `--schema` before invoking a command to understand its parameters and constraints.\n\nWhen present, inspect `scope` and `authorization_details` for the access required by the selected use case. Source actions appear in an authorization detail with `type: \"source\"`. If the response contains an `update` field, run its `update_command`, then check status again.\n\n- If there is no active session, use `auth login`.\n- If the active session already has the required access, do not start another authorization flow.\n- Do not log out merely to add access. Leave broader existing access intact unless the user explicitly asks to replace it with narrower access.\n\nIf the user is already authenticated but you need broader access (an additional `scope`, `--source-actions`, or `--authorization-detail`), use `auth upgrade` instead of `auth login`. It takes the same flags but, rather than stopping with an \"already logged in\" message, merges what you request with the current `scope`\u002F`authorization_details` and starts a new approval for the superset — so existing access is never dropped. Check `auth status` first so you know what's already granted. The current session stays valid during the approval and is only replaced once the user approves the new one, so an abandoned upgrade leaves the existing session working.\n\nThe token endpoint may omit `scope` or `authorization_details`, and environment-provided access tokens may not expose grant metadata. Do not claim unreported permissions are present. If a stored session's grants cannot be verified, use `auth upgrade` with the required access. Do not replace an environment-provided session without asking the user.\n\n## 3. Request access for the use case\n\nUse this access mapping:\n\n| Use case | Scopes | Source actions |\n|---|---|---|\n| Agent payments only | `userinfo:read payment_methods.agentic` | None |\n| Financial insights only | `userinfo:read` | Actions required for the requested insights |\n| Both | `userinfo:read payment_methods.agentic` | Actions required for the requested insights |\n\nMap financial-insight needs to source actions:\n\n| Intended insight | Source action |\n|---|---|\n| Link-processed transactions | `read_link_transactions` |\n| Transactions imported from connected banks | `read_external_transactions` |\n| Account balances | `read_balances` |\n| Connected source details and descriptions | `read_source_details` |\n\nRequest only the actions needed for a specific stated task. If the user asks to set up financial insights generally, request all four. For **both**, combine the agent-payment scopes with the applicable source actions.\n\nUse `login` or `upgrade` based on the status result, a clear client name for the agent or application, and the scopes from the mapping:\n\n```bash\nlink-cli auth login \\\n  --client-name \"\u003Cyour-agent-name>\" \\\n  --scope \"\u003Cselected-scopes>\" \\\n  --format json\n```\n\nReplace `\u003Cyour-agent-name>` with the name of your agent or application (for example, `\"Personal Assistant\"`, `\"Shopping Bot\"`). This name appears in the user's Link app when they approve the connection. Use a clear, unique, identifiable name.\n\nChange `login` to `upgrade` when widening an active session. For financial insights, add one `--source-actions \u003Caction>` flag per required action. Do not pass placeholders literally.\n\n## 4. Complete user approval\n\nAuthorization is a multi-step flow:\n\n1. Present the returned `verification_url` and phrase clearly to the user.\n2. Run the returned `_next.command` immediately to poll for approval; do not wait for another user reply before polling.\n3. Continue only when the result reports successful authentication and the required grants.\n\nThe response includes a `_next` command — run it to poll until authenticated. If your environment cannot relay the verification code while a separate polling command blocks I\u002FO, use inline polling instead by adding `--interval 5 --timeout 300` to the initial `auth login` or `auth upgrade` command. This yields the code immediately then polls in the same command.\n\nDO NOT PROCEED until the user is authenticated with Link.\n\nIf approval is denied, expires, or times out, report that outcome. Do not repeatedly create new authorization flows without the user's direction. Never expose access tokens, refresh tokens, or authentication-file contents.\n\n## 5. Hand off to the use-case skill\n\nAuthentication alone does not authorize an individual purchase and does not answer a financial-data question.\n\n- For purchases and payment credentials, use the `create-payment-credential` skill.\n- For transactions, balances, sources, and summaries, use the `financial-insights` skill.\n- For users who selected both, load the relevant downstream skill for each subsequent task.\n",{"data":35,"body":36},{"name":4,"description":6},{"type":37,"children":38},"root",[39,48,54,61,66,102,113,126,137,143,172,213,248,255,377,410,455,479,541,567,573,578,674,679,769,781,801,898,925,952,958,963,997,1030,1035,1040,1046,1051,1084],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"set-up-link-cli",[45],{"type":46,"value":47},"text","Set up Link CLI",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Set up and authenticate Link CLI for the user's intended use case. After setup, use the dedicated skill for payment or financial-insight work.",{"type":40,"tag":55,"props":56,"children":58},"h2",{"id":57},"_1-determine-the-use-case",[59],{"type":46,"value":60},"1. Determine the use case",{"type":40,"tag":49,"props":62,"children":63},{},[64],{"type":46,"value":65},"Infer the use case only when the user's intent is explicit:",{"type":40,"tag":67,"props":68,"children":69},"ul",{},[70,82,92],{"type":40,"tag":71,"props":72,"children":73},"li",{},[74,80],{"type":40,"tag":75,"props":76,"children":77},"strong",{},[78],{"type":46,"value":79},"Agent payments",{"type":46,"value":81},": buying, paying, checking out, or obtaining a payment credential.",{"type":40,"tag":71,"props":83,"children":84},{},[85,90],{"type":40,"tag":75,"props":86,"children":87},{},[88],{"type":46,"value":89},"Financial insights",{"type":46,"value":91},": reading transactions, balances, connected accounts, or spending patterns.",{"type":40,"tag":71,"props":93,"children":94},{},[95,100],{"type":40,"tag":75,"props":96,"children":97},{},[98],{"type":46,"value":99},"Both",{"type":46,"value":101},": enabling payments and financial insights.",{"type":40,"tag":49,"props":103,"children":104},{},[105,107,111],{"type":46,"value":106},"If the intended use case is unclear, present ",{"type":40,"tag":75,"props":108,"children":109},{},[110],{"type":46,"value":99},{"type":46,"value":112}," first and explicitly recommend it as the default before installing, authenticating, or choosing permissions:",{"type":40,"tag":114,"props":115,"children":120},"pre",{"className":116,"code":118,"language":46,"meta":119},[117],"language-text","How do you plan on using Link?\n1. (Recommended) Both: agent payments and financial insights\n2. Agent payments only\n3. Financial insights only\n","",[121],{"type":40,"tag":122,"props":123,"children":124},"code",{"__ignoreMap":119},[125],{"type":46,"value":118},{"type":40,"tag":49,"props":127,"children":128},{},[129,131,135],{"type":46,"value":130},"If the user asks for the default, accepts the recommendation, or has no preference, select ",{"type":40,"tag":75,"props":132,"children":133},{},[134],{"type":46,"value":99},{"type":46,"value":136},". Otherwise, do not proceed until the user chooses or otherwise clarifies their intention.",{"type":40,"tag":55,"props":138,"children":140},{"id":139},"_2-check-authentication-first",[141],{"type":46,"value":142},"2. Check authentication first",{"type":40,"tag":49,"props":144,"children":145},{},[146,148,154,156,162,164,170],{"type":46,"value":147},"Once the use case is known, run ",{"type":40,"tag":122,"props":149,"children":151},{"className":150},[],[152],{"type":46,"value":153},"auth status",{"type":46,"value":155}," as the first Link CLI command. Always do this before ",{"type":40,"tag":122,"props":157,"children":159},{"className":158},[],[160],{"type":46,"value":161},"auth login",{"type":46,"value":163},", ",{"type":40,"tag":122,"props":165,"children":167},{"className":166},[],[168],{"type":46,"value":169},"auth upgrade",{"type":46,"value":171},", or any payment or financial-data command:",{"type":40,"tag":114,"props":173,"children":177},{"className":174,"code":175,"language":176,"meta":119,"style":119},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","link-cli auth status --format json\n","bash",[178],{"type":40,"tag":122,"props":179,"children":180},{"__ignoreMap":119},[181],{"type":40,"tag":182,"props":183,"children":186},"span",{"class":184,"line":185},"line",1,[187,192,198,203,208],{"type":40,"tag":182,"props":188,"children":190},{"style":189},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[191],{"type":46,"value":4},{"type":40,"tag":182,"props":193,"children":195},{"style":194},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[196],{"type":46,"value":197}," auth",{"type":40,"tag":182,"props":199,"children":200},{"style":194},[201],{"type":46,"value":202}," status",{"type":40,"tag":182,"props":204,"children":205},{"style":194},[206],{"type":46,"value":207}," --format",{"type":40,"tag":182,"props":209,"children":210},{"style":194},[211],{"type":46,"value":212}," json\n",{"type":40,"tag":49,"props":214,"children":215},{},[216,218,223,225,231,233,238,240,246],{"type":46,"value":217},"If ",{"type":40,"tag":122,"props":219,"children":221},{"className":220},[],[222],{"type":46,"value":4},{"type":46,"value":224}," is unavailable, install it with ",{"type":40,"tag":122,"props":226,"children":228},{"className":227},[],[229],{"type":46,"value":230},"npm install -g @stripe\u002Flink-cli",{"type":46,"value":232},", then run the status command. Alternatively, replace ",{"type":40,"tag":122,"props":234,"children":236},{"className":235},[],[237],{"type":46,"value":4},{"type":46,"value":239}," in every command with ",{"type":40,"tag":122,"props":241,"children":243},{"className":242},[],[244],{"type":46,"value":245},"npx @stripe\u002Flink-cli@latest",{"type":46,"value":247},".",{"type":40,"tag":249,"props":250,"children":252},"h3",{"id":251},"common-commandsoptions",[253],{"type":46,"value":254},"Common commands\u002Foptions",{"type":40,"tag":67,"props":256,"children":257},{},[258,269,280,299,320,341,353],{"type":40,"tag":71,"props":259,"children":260},{},[261,263],{"type":46,"value":262},"List all commands: ",{"type":40,"tag":122,"props":264,"children":266},{"className":265},[],[267],{"type":46,"value":268},"link-cli --llms",{"type":40,"tag":71,"props":270,"children":271},{},[272,274],{"type":46,"value":273},"List all commands with parameters: ",{"type":40,"tag":122,"props":275,"children":277},{"className":276},[],[278],{"type":46,"value":279},"link-cli --llms-full",{"type":40,"tag":71,"props":281,"children":282},{},[283,285,291,293],{"type":46,"value":284},"Get a command's exact schema with ",{"type":40,"tag":122,"props":286,"children":288},{"className":287},[],[289],{"type":46,"value":290},"--schema",{"type":46,"value":292},". For example, ",{"type":40,"tag":122,"props":294,"children":296},{"className":295},[],[297],{"type":46,"value":298},"link-cli auth login --schema",{"type":40,"tag":71,"props":300,"children":301},{},[302,304,310,312,318],{"type":46,"value":303},"Multi-step commands return a ",{"type":40,"tag":122,"props":305,"children":307},{"className":306},[],[308],{"type":46,"value":309},"_next",{"type":46,"value":311}," action. For example, authenticating returns a ",{"type":40,"tag":122,"props":313,"children":315},{"className":314},[],[316],{"type":46,"value":317},"_next.command",{"type":46,"value":319}," that must be run to complete the flow.",{"type":40,"tag":71,"props":321,"children":322},{},[323,325,331,333,339],{"type":46,"value":324},"By default all output is in ",{"type":40,"tag":122,"props":326,"children":328},{"className":327},[],[329],{"type":46,"value":330},"toon",{"type":46,"value":332}," format. Pass ",{"type":40,"tag":122,"props":334,"children":336},{"className":335},[],[337],{"type":46,"value":338},"--format [json|md|yaml]",{"type":46,"value":340}," to change output format.",{"type":40,"tag":71,"props":342,"children":343},{},[344,346,351],{"type":46,"value":345},"Some commands return a verification or approval URL. ",{"type":40,"tag":75,"props":347,"children":348},{},[349],{"type":46,"value":350},"These",{"type":46,"value":352}," must be presented to the user clearly for their action.",{"type":40,"tag":71,"props":354,"children":355},{},[356,362,364,369,371],{"type":40,"tag":122,"props":357,"children":359},{"className":358},[],[360],{"type":46,"value":361},"--auth \u003Cpath>",{"type":46,"value":363}," flag to store auth credentials in a specific file instead of the default location. ",{"type":40,"tag":122,"props":365,"children":367},{"className":366},[],[368],{"type":46,"value":161},{"type":46,"value":370}," writes to this file; all other commands read from it. Example: ",{"type":40,"tag":122,"props":372,"children":374},{"className":373},[],[375],{"type":46,"value":376},"link-cli auth login --auth credentials.json --format json",{"type":40,"tag":49,"props":378,"children":379},{},[380,386,388,393,395,401,403,408],{"type":40,"tag":381,"props":382,"children":383},"em",{},[384],{"type":46,"value":385},"Recommended",{"type":46,"value":387},": Run ",{"type":40,"tag":122,"props":389,"children":391},{"className":390},[],[392],{"type":46,"value":268},{"type":46,"value":394}," to understand all the available commands. The ",{"type":40,"tag":122,"props":396,"children":398},{"className":397},[],[399],{"type":46,"value":400},"--llms-full",{"type":46,"value":402}," output is the canonical reference for parameter names, types, and valid values. Pass ",{"type":40,"tag":122,"props":404,"children":406},{"className":405},[],[407],{"type":46,"value":290},{"type":46,"value":409}," before invoking a command to understand its parameters and constraints.",{"type":40,"tag":49,"props":411,"children":412},{},[413,415,421,423,429,431,437,439,445,447,453],{"type":46,"value":414},"When present, inspect ",{"type":40,"tag":122,"props":416,"children":418},{"className":417},[],[419],{"type":46,"value":420},"scope",{"type":46,"value":422}," and ",{"type":40,"tag":122,"props":424,"children":426},{"className":425},[],[427],{"type":46,"value":428},"authorization_details",{"type":46,"value":430}," for the access required by the selected use case. Source actions appear in an authorization detail with ",{"type":40,"tag":122,"props":432,"children":434},{"className":433},[],[435],{"type":46,"value":436},"type: \"source\"",{"type":46,"value":438},". If the response contains an ",{"type":40,"tag":122,"props":440,"children":442},{"className":441},[],[443],{"type":46,"value":444},"update",{"type":46,"value":446}," field, run its ",{"type":40,"tag":122,"props":448,"children":450},{"className":449},[],[451],{"type":46,"value":452},"update_command",{"type":46,"value":454},", then check status again.",{"type":40,"tag":67,"props":456,"children":457},{},[458,469,474],{"type":40,"tag":71,"props":459,"children":460},{},[461,463,468],{"type":46,"value":462},"If there is no active session, use ",{"type":40,"tag":122,"props":464,"children":466},{"className":465},[],[467],{"type":46,"value":161},{"type":46,"value":247},{"type":40,"tag":71,"props":470,"children":471},{},[472],{"type":46,"value":473},"If the active session already has the required access, do not start another authorization flow.",{"type":40,"tag":71,"props":475,"children":476},{},[477],{"type":46,"value":478},"Do not log out merely to add access. Leave broader existing access intact unless the user explicitly asks to replace it with narrower access.",{"type":40,"tag":49,"props":480,"children":481},{},[482,484,489,490,496,498,504,506,511,513,518,520,525,527,532,534,539],{"type":46,"value":483},"If the user is already authenticated but you need broader access (an additional ",{"type":40,"tag":122,"props":485,"children":487},{"className":486},[],[488],{"type":46,"value":420},{"type":46,"value":163},{"type":40,"tag":122,"props":491,"children":493},{"className":492},[],[494],{"type":46,"value":495},"--source-actions",{"type":46,"value":497},", or ",{"type":40,"tag":122,"props":499,"children":501},{"className":500},[],[502],{"type":46,"value":503},"--authorization-detail",{"type":46,"value":505},"), use ",{"type":40,"tag":122,"props":507,"children":509},{"className":508},[],[510],{"type":46,"value":169},{"type":46,"value":512}," instead of ",{"type":40,"tag":122,"props":514,"children":516},{"className":515},[],[517],{"type":46,"value":161},{"type":46,"value":519},". It takes the same flags but, rather than stopping with an \"already logged in\" message, merges what you request with the current ",{"type":40,"tag":122,"props":521,"children":523},{"className":522},[],[524],{"type":46,"value":420},{"type":46,"value":526},"\u002F",{"type":40,"tag":122,"props":528,"children":530},{"className":529},[],[531],{"type":46,"value":428},{"type":46,"value":533}," and starts a new approval for the superset — so existing access is never dropped. Check ",{"type":40,"tag":122,"props":535,"children":537},{"className":536},[],[538],{"type":46,"value":153},{"type":46,"value":540}," first so you know what's already granted. The current session stays valid during the approval and is only replaced once the user approves the new one, so an abandoned upgrade leaves the existing session working.",{"type":40,"tag":49,"props":542,"children":543},{},[544,546,551,553,558,560,565],{"type":46,"value":545},"The token endpoint may omit ",{"type":40,"tag":122,"props":547,"children":549},{"className":548},[],[550],{"type":46,"value":420},{"type":46,"value":552}," or ",{"type":40,"tag":122,"props":554,"children":556},{"className":555},[],[557],{"type":46,"value":428},{"type":46,"value":559},", and environment-provided access tokens may not expose grant metadata. Do not claim unreported permissions are present. If a stored session's grants cannot be verified, use ",{"type":40,"tag":122,"props":561,"children":563},{"className":562},[],[564],{"type":46,"value":169},{"type":46,"value":566}," with the required access. Do not replace an environment-provided session without asking the user.",{"type":40,"tag":55,"props":568,"children":570},{"id":569},"_3-request-access-for-the-use-case",[571],{"type":46,"value":572},"3. Request access for the use case",{"type":40,"tag":49,"props":574,"children":575},{},[576],{"type":46,"value":577},"Use this access mapping:",{"type":40,"tag":579,"props":580,"children":581},"table",{},[582,606],{"type":40,"tag":583,"props":584,"children":585},"thead",{},[586],{"type":40,"tag":587,"props":588,"children":589},"tr",{},[590,596,601],{"type":40,"tag":591,"props":592,"children":593},"th",{},[594],{"type":46,"value":595},"Use case",{"type":40,"tag":591,"props":597,"children":598},{},[599],{"type":46,"value":600},"Scopes",{"type":40,"tag":591,"props":602,"children":603},{},[604],{"type":46,"value":605},"Source actions",{"type":40,"tag":607,"props":608,"children":609},"tbody",{},[610,633,655],{"type":40,"tag":587,"props":611,"children":612},{},[613,619,628],{"type":40,"tag":614,"props":615,"children":616},"td",{},[617],{"type":46,"value":618},"Agent payments only",{"type":40,"tag":614,"props":620,"children":621},{},[622],{"type":40,"tag":122,"props":623,"children":625},{"className":624},[],[626],{"type":46,"value":627},"userinfo:read payment_methods.agentic",{"type":40,"tag":614,"props":629,"children":630},{},[631],{"type":46,"value":632},"None",{"type":40,"tag":587,"props":634,"children":635},{},[636,641,650],{"type":40,"tag":614,"props":637,"children":638},{},[639],{"type":46,"value":640},"Financial insights only",{"type":40,"tag":614,"props":642,"children":643},{},[644],{"type":40,"tag":122,"props":645,"children":647},{"className":646},[],[648],{"type":46,"value":649},"userinfo:read",{"type":40,"tag":614,"props":651,"children":652},{},[653],{"type":46,"value":654},"Actions required for the requested insights",{"type":40,"tag":587,"props":656,"children":657},{},[658,662,670],{"type":40,"tag":614,"props":659,"children":660},{},[661],{"type":46,"value":99},{"type":40,"tag":614,"props":663,"children":664},{},[665],{"type":40,"tag":122,"props":666,"children":668},{"className":667},[],[669],{"type":46,"value":627},{"type":40,"tag":614,"props":671,"children":672},{},[673],{"type":46,"value":654},{"type":40,"tag":49,"props":675,"children":676},{},[677],{"type":46,"value":678},"Map financial-insight needs to source actions:",{"type":40,"tag":579,"props":680,"children":681},{},[682,698],{"type":40,"tag":583,"props":683,"children":684},{},[685],{"type":40,"tag":587,"props":686,"children":687},{},[688,693],{"type":40,"tag":591,"props":689,"children":690},{},[691],{"type":46,"value":692},"Intended insight",{"type":40,"tag":591,"props":694,"children":695},{},[696],{"type":46,"value":697},"Source action",{"type":40,"tag":607,"props":699,"children":700},{},[701,718,735,752],{"type":40,"tag":587,"props":702,"children":703},{},[704,709],{"type":40,"tag":614,"props":705,"children":706},{},[707],{"type":46,"value":708},"Link-processed transactions",{"type":40,"tag":614,"props":710,"children":711},{},[712],{"type":40,"tag":122,"props":713,"children":715},{"className":714},[],[716],{"type":46,"value":717},"read_link_transactions",{"type":40,"tag":587,"props":719,"children":720},{},[721,726],{"type":40,"tag":614,"props":722,"children":723},{},[724],{"type":46,"value":725},"Transactions imported from connected banks",{"type":40,"tag":614,"props":727,"children":728},{},[729],{"type":40,"tag":122,"props":730,"children":732},{"className":731},[],[733],{"type":46,"value":734},"read_external_transactions",{"type":40,"tag":587,"props":736,"children":737},{},[738,743],{"type":40,"tag":614,"props":739,"children":740},{},[741],{"type":46,"value":742},"Account balances",{"type":40,"tag":614,"props":744,"children":745},{},[746],{"type":40,"tag":122,"props":747,"children":749},{"className":748},[],[750],{"type":46,"value":751},"read_balances",{"type":40,"tag":587,"props":753,"children":754},{},[755,760],{"type":40,"tag":614,"props":756,"children":757},{},[758],{"type":46,"value":759},"Connected source details and descriptions",{"type":40,"tag":614,"props":761,"children":762},{},[763],{"type":40,"tag":122,"props":764,"children":766},{"className":765},[],[767],{"type":46,"value":768},"read_source_details",{"type":40,"tag":49,"props":770,"children":771},{},[772,774,779],{"type":46,"value":773},"Request only the actions needed for a specific stated task. If the user asks to set up financial insights generally, request all four. For ",{"type":40,"tag":75,"props":775,"children":776},{},[777],{"type":46,"value":778},"both",{"type":46,"value":780},", combine the agent-payment scopes with the applicable source actions.",{"type":40,"tag":49,"props":782,"children":783},{},[784,786,792,793,799],{"type":46,"value":785},"Use ",{"type":40,"tag":122,"props":787,"children":789},{"className":788},[],[790],{"type":46,"value":791},"login",{"type":46,"value":552},{"type":40,"tag":122,"props":794,"children":796},{"className":795},[],[797],{"type":46,"value":798},"upgrade",{"type":46,"value":800}," based on the status result, a clear client name for the agent or application, and the scopes from the mapping:",{"type":40,"tag":114,"props":802,"children":804},{"className":174,"code":803,"language":176,"meta":119,"style":119},"link-cli auth login \\\n  --client-name \"\u003Cyour-agent-name>\" \\\n  --scope \"\u003Cselected-scopes>\" \\\n  --format json\n",[805],{"type":40,"tag":122,"props":806,"children":807},{"__ignoreMap":119},[808,830,859,885],{"type":40,"tag":182,"props":809,"children":810},{"class":184,"line":185},[811,815,819,824],{"type":40,"tag":182,"props":812,"children":813},{"style":189},[814],{"type":46,"value":4},{"type":40,"tag":182,"props":816,"children":817},{"style":194},[818],{"type":46,"value":197},{"type":40,"tag":182,"props":820,"children":821},{"style":194},[822],{"type":46,"value":823}," login",{"type":40,"tag":182,"props":825,"children":827},{"style":826},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[828],{"type":46,"value":829}," \\\n",{"type":40,"tag":182,"props":831,"children":833},{"class":184,"line":832},2,[834,839,845,850,855],{"type":40,"tag":182,"props":835,"children":836},{"style":194},[837],{"type":46,"value":838},"  --client-name",{"type":40,"tag":182,"props":840,"children":842},{"style":841},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[843],{"type":46,"value":844}," \"",{"type":40,"tag":182,"props":846,"children":847},{"style":194},[848],{"type":46,"value":849},"\u003Cyour-agent-name>",{"type":40,"tag":182,"props":851,"children":852},{"style":841},[853],{"type":46,"value":854},"\"",{"type":40,"tag":182,"props":856,"children":857},{"style":826},[858],{"type":46,"value":829},{"type":40,"tag":182,"props":860,"children":862},{"class":184,"line":861},3,[863,868,872,877,881],{"type":40,"tag":182,"props":864,"children":865},{"style":194},[866],{"type":46,"value":867},"  --scope",{"type":40,"tag":182,"props":869,"children":870},{"style":841},[871],{"type":46,"value":844},{"type":40,"tag":182,"props":873,"children":874},{"style":194},[875],{"type":46,"value":876},"\u003Cselected-scopes>",{"type":40,"tag":182,"props":878,"children":879},{"style":841},[880],{"type":46,"value":854},{"type":40,"tag":182,"props":882,"children":883},{"style":826},[884],{"type":46,"value":829},{"type":40,"tag":182,"props":886,"children":888},{"class":184,"line":887},4,[889,894],{"type":40,"tag":182,"props":890,"children":891},{"style":194},[892],{"type":46,"value":893},"  --format",{"type":40,"tag":182,"props":895,"children":896},{"style":194},[897],{"type":46,"value":212},{"type":40,"tag":49,"props":899,"children":900},{},[901,903,908,910,916,917,923],{"type":46,"value":902},"Replace ",{"type":40,"tag":122,"props":904,"children":906},{"className":905},[],[907],{"type":46,"value":849},{"type":46,"value":909}," with the name of your agent or application (for example, ",{"type":40,"tag":122,"props":911,"children":913},{"className":912},[],[914],{"type":46,"value":915},"\"Personal Assistant\"",{"type":46,"value":163},{"type":40,"tag":122,"props":918,"children":920},{"className":919},[],[921],{"type":46,"value":922},"\"Shopping Bot\"",{"type":46,"value":924},"). This name appears in the user's Link app when they approve the connection. Use a clear, unique, identifiable name.",{"type":40,"tag":49,"props":926,"children":927},{},[928,930,935,937,942,944,950],{"type":46,"value":929},"Change ",{"type":40,"tag":122,"props":931,"children":933},{"className":932},[],[934],{"type":46,"value":791},{"type":46,"value":936}," to ",{"type":40,"tag":122,"props":938,"children":940},{"className":939},[],[941],{"type":46,"value":798},{"type":46,"value":943}," when widening an active session. For financial insights, add one ",{"type":40,"tag":122,"props":945,"children":947},{"className":946},[],[948],{"type":46,"value":949},"--source-actions \u003Caction>",{"type":46,"value":951}," flag per required action. Do not pass placeholders literally.",{"type":40,"tag":55,"props":953,"children":955},{"id":954},"_4-complete-user-approval",[956],{"type":46,"value":957},"4. Complete user approval",{"type":40,"tag":49,"props":959,"children":960},{},[961],{"type":46,"value":962},"Authorization is a multi-step flow:",{"type":40,"tag":964,"props":965,"children":966},"ol",{},[967,980,992],{"type":40,"tag":71,"props":968,"children":969},{},[970,972,978],{"type":46,"value":971},"Present the returned ",{"type":40,"tag":122,"props":973,"children":975},{"className":974},[],[976],{"type":46,"value":977},"verification_url",{"type":46,"value":979}," and phrase clearly to the user.",{"type":40,"tag":71,"props":981,"children":982},{},[983,985,990],{"type":46,"value":984},"Run the returned ",{"type":40,"tag":122,"props":986,"children":988},{"className":987},[],[989],{"type":46,"value":317},{"type":46,"value":991}," immediately to poll for approval; do not wait for another user reply before polling.",{"type":40,"tag":71,"props":993,"children":994},{},[995],{"type":46,"value":996},"Continue only when the result reports successful authentication and the required grants.",{"type":40,"tag":49,"props":998,"children":999},{},[1000,1002,1007,1009,1015,1017,1022,1023,1028],{"type":46,"value":1001},"The response includes a ",{"type":40,"tag":122,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":46,"value":309},{"type":46,"value":1008}," command — run it to poll until authenticated. If your environment cannot relay the verification code while a separate polling command blocks I\u002FO, use inline polling instead by adding ",{"type":40,"tag":122,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":46,"value":1014},"--interval 5 --timeout 300",{"type":46,"value":1016}," to the initial ",{"type":40,"tag":122,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":46,"value":161},{"type":46,"value":552},{"type":40,"tag":122,"props":1024,"children":1026},{"className":1025},[],[1027],{"type":46,"value":169},{"type":46,"value":1029}," command. This yields the code immediately then polls in the same command.",{"type":40,"tag":49,"props":1031,"children":1032},{},[1033],{"type":46,"value":1034},"DO NOT PROCEED until the user is authenticated with Link.",{"type":40,"tag":49,"props":1036,"children":1037},{},[1038],{"type":46,"value":1039},"If approval is denied, expires, or times out, report that outcome. Do not repeatedly create new authorization flows without the user's direction. Never expose access tokens, refresh tokens, or authentication-file contents.",{"type":40,"tag":55,"props":1041,"children":1043},{"id":1042},"_5-hand-off-to-the-use-case-skill",[1044],{"type":46,"value":1045},"5. Hand off to the use-case skill",{"type":40,"tag":49,"props":1047,"children":1048},{},[1049],{"type":46,"value":1050},"Authentication alone does not authorize an individual purchase and does not answer a financial-data question.",{"type":40,"tag":67,"props":1052,"children":1053},{},[1054,1067,1079],{"type":40,"tag":71,"props":1055,"children":1056},{},[1057,1059,1065],{"type":46,"value":1058},"For purchases and payment credentials, use the ",{"type":40,"tag":122,"props":1060,"children":1062},{"className":1061},[],[1063],{"type":46,"value":1064},"create-payment-credential",{"type":46,"value":1066}," skill.",{"type":40,"tag":71,"props":1068,"children":1069},{},[1070,1072,1078],{"type":46,"value":1071},"For transactions, balances, sources, and summaries, use the ",{"type":40,"tag":122,"props":1073,"children":1075},{"className":1074},[],[1076],{"type":46,"value":1077},"financial-insights",{"type":46,"value":1066},{"type":40,"tag":71,"props":1080,"children":1081},{},[1082],{"type":46,"value":1083},"For users who selected both, load the relevant downstream skill for each subsequent task.",{"type":40,"tag":1085,"props":1086,"children":1087},"style",{},[1088],{"type":46,"value":1089},"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);}",{"items":1091,"total":1147},[1092,1102,1114,1128,1140],{"slug":1093,"name":1093,"fn":1094,"description":1095,"org":1096,"tags":1097,"stars":23,"repoUrl":24,"updatedAt":1101},"check-link-wallet","manage Stripe Link wallet and accounts","Reads the connected Link account, the cards and bank accounts saved in its wallet, its saved shipping addresses, and the status of existing spend requests. Use when the user asks which Link account is connected, what payment methods or addresses Link has saved, or whether a Link purchase has been approved yet.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1098,1099,1100],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-08-28T15:09:26.455635",{"slug":1103,"name":1103,"fn":1104,"description":1105,"org":1106,"tags":1107,"stars":23,"repoUrl":24,"updatedAt":1113},"complete-link-purchase","complete purchases with Stripe Link","Buys something on a merchant site with a Link wallet by asking the user to authorize a one-time virtual card, then retrieving the credential and entering it at checkout. Use when the user asks to buy something, pay for something, check out, or use their Link wallet on a merchant site.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1108,1111,1112],{"name":1109,"slug":1110,"type":15},"Automation","automation",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-08-28T15:09:26.821069",{"slug":1064,"name":1064,"fn":1115,"description":1116,"org":1117,"tags":1118,"stars":23,"repoUrl":24,"updatedAt":1127},"get secure payment credentials from Stripe","Gets secure, one-time-use payment credentials (cards, tokens) from a Link wallet so agents can complete purchases on behalf of users. Use when the user says \"get me a card\", \"buy something\", \"pay for X\", \"make a purchase\", \"I need to pay\", \"complete checkout\", or asks to transact on any merchant site. Use when the user asks to connect or log in to or sign up for their Link account.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1119,1122,1123,1126],{"name":1120,"slug":1121,"type":15},"API Development","api-development",{"name":20,"slug":21,"type":15},{"name":1124,"slug":1125,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-09-01T07:58:27.175849",{"slug":1077,"name":1077,"fn":1129,"description":1130,"org":1131,"tags":1132,"stars":23,"repoUrl":24,"updatedAt":1139},"analyze Stripe Link financial data","Reads a user's Link financial data — transactions, balances, and wallet sources — so agents can answer questions about spending and available source capabilities. Use when the user says \"check my balance\", \"how much did I spend\", \"show my transactions\", \"what accounts are connected\", \"summarize my spending\", \"recent purchases\", or asks about their financial activity, account balances, or linked sources.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1133,1136,1137,1138],{"name":1134,"slug":1135,"type":15},"Data Analysis","data-analysis",{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-09-01T07:58:28.153688",{"slug":4,"name":4,"fn":5,"description":6,"org":1141,"tags":1142,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1143,1144,1145,1146],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},5,{"items":1149,"total":1299},[1150,1167,1182,1199,1214,1230,1245,1258,1273,1279,1285,1292],{"slug":1151,"name":1151,"fn":1152,"description":1153,"org":1154,"tags":1155,"stars":1164,"repoUrl":1165,"updatedAt":1166},"connect-recommend","configure Stripe Connect marketplace and payments","Use this skill when the user asks about Stripe Connect configuration, charge patterns, Dashboard access, or how to get started with Connect, is building a marketplace, platform, multi-vendor store, gig platform, or subscription platform, needs to pay out sellers, vendors, or providers, mentions split payments, revenue sharing, multi-party payments, or similar payment distribution concepts, provides a company URL or business description for a recommendation, builds SaaS that routes money between parties (for example, POS, booking, invoicing — not operational SaaS without payment routing), asks about onboarding or KYC for merchants, sellers, and vendors, mentions connected account Dashboard or responsibility configurations, or asks about payment flows, white-label payments, or embedded payments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1156,1159,1160,1163],{"name":1157,"slug":1158,"type":15},"Configuration","configuration",{"name":20,"slug":21,"type":15},{"name":1161,"slug":1162,"type":15},"Sales","sales",{"name":9,"slug":8,"type":15},1696,"https:\u002F\u002Fgithub.com\u002Fstripe\u002Fai","2026-07-24T06:09:04.823685",{"slug":1168,"name":1168,"fn":1169,"description":1170,"org":1171,"tags":1172,"stars":1164,"repoUrl":1165,"updatedAt":1181},"connect-required-verification-information","manage Stripe Connect verification requirements","Use this skill when the user asks what information a Stripe Connect connected account must provide for verification, onboarding, KYC, or account requirements; when they need to compare requirements between connected-account setups; or when they ask which verification fields, documents, or business details are required for a particular platform country, account country, business type, dashboard, service agreement, or capability.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1173,1176,1179,1180],{"name":1174,"slug":1175,"type":15},"Compliance","compliance",{"name":1177,"slug":1178,"type":15},"KYC","kyc",{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},"2026-08-15T03:47:46.705637",{"slug":1183,"name":1183,"fn":1184,"description":1185,"org":1186,"tags":1187,"stars":1164,"repoUrl":1165,"updatedAt":1198},"stripe-apps","build and customize Stripe Apps","Use when building, modifying, or reviewing a Stripe App — or when the user describes something that implies one (e.g. \"add a panel to the customer page\", \"customize my Stripe Dashboard\", \"react to Stripe events from my app\", \"connect my service to Stripe without sharing API keys\"). Covers the full app development workflow (scaffold, preview, upload, versioning), UI extension architecture (sandboxed iframe, Stripe UI toolkit, viewports), extension types (UI extensions, backend-only, extension interfaces, embedded apps), authentication (platform keys, OAuth, restricted API keys), stripe-app.yaml manifest setup (permissions, viewports, CSP), webhook configuration for apps, Secret Store API, `fetchStripeSignature` auth, and marketplace publishing, plus submitting one agentic feedback report after a build. Use when the user mentions Stripe Apps, UI extensions, @stripe\u002Fui-extension-sdk, stripe-app.yaml, Dashboard extensions, or customizing the Stripe Dashboard.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1188,1191,1194,1197],{"name":1189,"slug":1190,"type":15},"Apps SDK","apps-sdk",{"name":1192,"slug":1193,"type":15},"Dashboard","dashboard",{"name":1195,"slug":1196,"type":15},"Frontend","frontend",{"name":9,"slug":8,"type":15},"2026-08-28T14:39:41.089512",{"slug":1200,"name":1200,"fn":1201,"description":1202,"org":1203,"tags":1204,"stars":1164,"repoUrl":1165,"updatedAt":1213},"stripe-best-practices","architect Stripe payment integrations","Guides Stripe integration decisions across API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing\u002Fsubscriptions, tax and registrations (Stripe Tax, automatic_tax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment Element), migrating from deprecated Stripe APIs, and security best practices (API key management, restricted keys, webhooks, OAuth). Use when building, modifying, or reviewing any Stripe integration, including accepting payments, building marketplaces, integrating Stripe, processing payments, setting up subscriptions, collecting sales tax, VAT, or GST, creating connected accounts, or implementing secure key handling.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1205,1208,1209,1212],{"name":1206,"slug":1207,"type":15},"Architecture","architecture",{"name":20,"slug":21,"type":15},{"name":1210,"slug":1211,"type":15},"SaaS","saas",{"name":9,"slug":8,"type":15},"2026-08-28T14:39:39.07358",{"slug":1215,"name":1215,"fn":1216,"description":1217,"org":1218,"tags":1219,"stars":1164,"repoUrl":1165,"updatedAt":1229},"stripe-directory","search the Stripe partner directory","Identifies external providers, merchants, nonprofits, platforms, APIs, and software services, and resolves the documented way to engage them — to pay, donate, subscribe, book, provision, or integrate with them. MUST be used BEFORE web search, model memory, or any other directory\u002Fvendor-lookup skill for ANY request that requires selecting, finding, or engaging an external provider or organization — whether a specific one is named (\"pay my Twilio bill\"), implied (\"donate to the Red Cross\"), or only a category is stated (\"set up a mailing client\", \"I need a database\", \"find me a CRM\"). Directory supplies verified recipients and their documented payment or engagement path. Results are ranked by agent-readiness (how reliably an agent can complete the interaction), relevance and popularity. Do not treat this as a search-only tool. Examples: \"setup a database\", \"find hosting\", \"pay X\", \"use Twilio\", \"donate $50 to the Red Cross\", \"book a table at Y\", \"subscribe to a CRM\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1220,1221,1224,1225,1228],{"name":20,"slug":21,"type":15},{"name":1222,"slug":1223,"type":15},"Research","research",{"name":1210,"slug":1211,"type":15},{"name":1226,"slug":1227,"type":15},"Search","search",{"name":9,"slug":8,"type":15},"2026-09-01T07:58:42.130468",{"slug":1231,"name":1231,"fn":1232,"description":1233,"org":1234,"tags":1235,"stars":1164,"repoUrl":1165,"updatedAt":1244},"stripe-docs","search Stripe documentation and API","Use when the user or agent needs to read, search, or look up Stripe documentation or API reference. Prefer this over curl or WebFetch for any docs.stripe.com content.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1236,1237,1240,1243],{"name":1120,"slug":1121,"type":15},{"name":1238,"slug":1239,"type":15},"Documentation","documentation",{"name":1241,"slug":1242,"type":15},"Reference","reference",{"name":9,"slug":8,"type":15},"2026-07-21T06:07:31.016426",{"slug":1246,"name":1246,"fn":1247,"description":1248,"org":1249,"tags":1250,"stars":1164,"repoUrl":1165,"updatedAt":1257},"stripe-projects","bootstrap apps with Stripe Projects","Use when the user wants to provision infrastructure or third-party services using Stripe Projects. Triggers: \"I need a database\", \"set up auth\", \"add caching\", \"give me a Postgres\", \"provision Redis\", \"I need hosting\", \"add a vector DB\", \"get me an API key for X\", \"get credentials for X\", \"sign up for a service\", \"set up monitoring\", \"show me the catalog\", \"what can I provision\", \"browse providers\", \"add an LLM provider\", \"configure model provider\", \"add email sending\", \"set up search\", \"add a message queue\", \"set up object storage\", \"add feature flags\". Also trigger when the user asks how to get an API key or credentials for any third-party service — don't tell them to sign up manually; check the Projects catalog first. Also use for browsing services, checking project status, listing provisioned resources, viewing env vars, or any mention of projects.dev or adding\u002Fprovisioning\u002Fconnecting a cloud service.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1251,1252,1255,1256],{"name":17,"slug":18,"type":15},{"name":1253,"slug":1254,"type":15},"Local Development","local-development",{"name":1210,"slug":1211,"type":15},{"name":9,"slug":8,"type":15},"2026-08-19T03:27:44.229644",{"slug":1259,"name":1259,"fn":1260,"description":1261,"org":1262,"tags":1263,"stars":1164,"repoUrl":1165,"updatedAt":1272},"upgrade-stripe","upgrade Stripe API versions and SDKs","Guide for upgrading Stripe API versions and SDKs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1264,1267,1268,1271],{"name":1265,"slug":1266,"type":15},"Migration","migration",{"name":20,"slug":21,"type":15},{"name":1269,"slug":1270,"type":15},"SDK","sdk",{"name":9,"slug":8,"type":15},"2026-08-28T14:39:40.015875",{"slug":1093,"name":1093,"fn":1094,"description":1095,"org":1274,"tags":1275,"stars":23,"repoUrl":24,"updatedAt":1101},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1276,1277,1278],{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"slug":1103,"name":1103,"fn":1104,"description":1105,"org":1280,"tags":1281,"stars":23,"repoUrl":24,"updatedAt":1113},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1282,1283,1284],{"name":1109,"slug":1110,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"slug":1064,"name":1064,"fn":1115,"description":1116,"org":1286,"tags":1287,"stars":23,"repoUrl":24,"updatedAt":1127},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1288,1289,1290,1291],{"name":1120,"slug":1121,"type":15},{"name":20,"slug":21,"type":15},{"name":1124,"slug":1125,"type":15},{"name":9,"slug":8,"type":15},{"slug":1077,"name":1077,"fn":1129,"description":1130,"org":1293,"tags":1294,"stars":23,"repoUrl":24,"updatedAt":1139},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1295,1296,1297,1298],{"name":1134,"slug":1135,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},14]