[{"data":1,"prerenderedAt":547},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-introduction":66,"-getting-started-introduction-surround":543},[4,22,54],{"title":5,"path":6,"stem":7,"children":8,"page":21},"Getting Started","\u002Fgetting-started","docs",[9,13,17],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Installation","\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":18,"path":19,"stem":20},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","docs\u002F1.getting-started\u002F3.agent-skills",false,{"title":23,"path":24,"stem":7,"children":25,"page":21},"Guide","\u002Fguide",[26,30,34,38,42,46,50],{"title":27,"path":28,"stem":29},"Quick Start","\u002Fguide\u002Fquick-start","docs\u002F2.guide\u002F1.quick-start",{"title":31,"path":32,"stem":33},"Scope with Presets","\u002Fguide\u002Fpresets","docs\u002F2.guide\u002F2.presets",{"title":35,"path":36,"stem":37},"Control Write Safety","\u002Fguide\u002Fapproval-control","docs\u002F2.guide\u002F3.approval-control",{"title":39,"path":40,"stem":41},"Commit Attribution","\u002Fguide\u002Fcommit-attribution","docs\u002F2.guide\u002F4.commit-attribution",{"title":43,"path":44,"stem":45},"Configure Token Scopes","\u002Fguide\u002Ftoken-permissions","docs\u002F2.guide\u002F5.token-and-permissions",{"title":47,"path":48,"stem":49},"Examples","\u002Fguide\u002Fexamples","docs\u002F2.guide\u002F6.examples",{"title":51,"path":52,"stem":53},"Durable workflows (Vercel Workflow)","\u002Fguide\u002Fdurable-workflows","docs\u002F2.guide\u002F7.durable-workflows",{"title":55,"path":56,"stem":7,"children":57,"page":21},"Api","\u002Fapi",[58,62],{"title":59,"path":60,"stem":61},"Tools Catalog","\u002Fapi\u002Ftools-catalog","docs\u002F3.api\u002F1.tools-catalog",{"title":63,"path":64,"stem":65},"API Reference","\u002Fapi\u002Freference","docs\u002F3.api\u002F2.reference",{"id":67,"title":10,"body":68,"description":527,"extension":528,"links":529,"meta":540,"navigation":294,"path":11,"seo":541,"stem":12,"__hash__":542},"docs\u002Fdocs\u002F1.getting-started\u002F1.introduction.md",{"type":69,"value":70,"toc":518},"minimark",[71,93,104,109,127,132,136,143,231,236,240,247,381,387,391,418,437,440,459,463,487,491,514],[72,73,74,78,79,86,87,92],"p",{},[75,76,77],"code",{},"@github-tools\u002Fsdk"," wraps the ",[80,81,85],"a",{"href":82,"rel":83},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Frest",[84],"nofollow","GitHub REST API"," into AI-callable tool definitions that plug directly into the ",[80,88,91],{"href":89,"rel":90},"https:\u002F\u002Fai-sdk.dev\u002Fdocs",[84],"AI SDK",".",[72,94,95,96,99,100,103],{},"Pass them to ",[75,97,98],{},"generateText",", ",[75,101,102],{},"streamText",", or any agent loop — the model decides which GitHub operations to call.",[105,106,108],"h2",{"id":107},"explore-the-tools","Explore the tools",[72,110,111,112,116,117,120,121,126],{},"The SDK ships ",[113,114,115],"strong",{},"42 tools"," covering repositories, branches, pull requests, issues, commits, code search, gists, and workflows. Each tool wraps a GitHub API operation (mostly REST; line-level blame uses the GraphQL ",[75,118,119],{},"Commit.blame"," field) and is fully typed with ",[80,122,125],{"href":123,"rel":124},"https:\u002F\u002Fzod.dev",[84],"Zod"," schemas.",[72,128,129,130,92],{},"Browse the full list in the ",[80,131,59],{"href":60},[105,133,135],{"id":134},"compose-tools-with-presets","Compose tools with presets",[72,137,138,139,142],{},"Instead of wiring tools individually, use a ",[113,140,141],{},"preset"," to get a curated subset for a specific workflow:",[144,145,146,162],"table",{},[147,148,149],"thead",{},[150,151,152,156,159],"tr",{},[153,154,155],"th",{},"Preset",[153,157,158],{},"Tools included",[153,160,161],{},"Use case",[163,164,165,179,192,205,218],"tbody",{},[150,166,167,173,176],{},[168,169,170],"td",{},[75,171,172],{},"repo-explorer",[168,174,175],{},"repository metadata, branches, file content, code search, gists, workflows",[168,177,178],{},"knowledge retrieval, repo Q&A",[150,180,181,186,189],{},[168,182,183],{},[75,184,185],{},"code-review",[168,187,188],{},"pull requests, commits, file diffs, review comments",[168,190,191],{},"PR copilots, change summaries",[150,193,194,199,202],{},[168,195,196],{},[75,197,198],{},"issue-triage",[168,200,201],{},"issues, labels, comments, close\u002Fcreate",[168,203,204],{},"support triage, backlog bots",[150,206,207,212,215],{},[168,208,209],{},[75,210,211],{},"ci-ops",[168,213,214],{},"workflows, runs, jobs, commits, repository context",[168,216,217],{},"CI monitoring, build ops",[150,219,220,225,228],{},[168,221,222],{},[75,223,224],{},"maintainer",[168,226,227],{},"all tool families",[168,229,230],{},"full operator workflows",[72,232,233,234,92],{},"Learn more in ",[80,235,31],{"href":32},[105,237,239],{"id":238},"use-pre-built-agents","Use pre-built agents",[72,241,242,243,246],{},"For the highest level of abstraction, ",[75,244,245],{},"createGithubAgent"," returns a ready-to-use agent with tools, presets, and system instructions wired together:",[248,249,255],"pre",{"className":250,"code":251,"filename":252,"language":253,"meta":254,"style":254},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createGithubAgent } from '@github-tools\u002Fsdk'\n\nconst reviewer = createGithubAgent({\n  model: 'anthropic\u002Fclaude-sonnet-4.6',\n  preset: 'code-review',\n  system: 'You review PRs for security issues. Cite file paths and line numbers.',\n})\n","review-agent.ts","ts","",[75,256,257,289,296,318,339,355,372],{"__ignoreMap":254},[258,259,262,266,270,274,277,280,283,286],"span",{"class":260,"line":261},"line",1,[258,263,265],{"class":264},"s7zQu","import",[258,267,269],{"class":268},"sMK4o"," {",[258,271,273],{"class":272},"sTEyZ"," createGithubAgent",[258,275,276],{"class":268}," }",[258,278,279],{"class":264}," from",[258,281,282],{"class":268}," '",[258,284,77],{"class":285},"sfazB",[258,287,288],{"class":268},"'\n",[258,290,292],{"class":260,"line":291},2,[258,293,295],{"emptyLinePlaceholder":294},true,"\n",[258,297,299,303,306,309,312,315],{"class":260,"line":298},3,[258,300,302],{"class":301},"spNyl","const",[258,304,305],{"class":272}," reviewer ",[258,307,308],{"class":268},"=",[258,310,273],{"class":311},"s2Zo4",[258,313,314],{"class":272},"(",[258,316,317],{"class":268},"{\n",[258,319,321,325,328,330,333,336],{"class":260,"line":320},4,[258,322,324],{"class":323},"swJcz","  model",[258,326,327],{"class":268},":",[258,329,282],{"class":268},[258,331,332],{"class":285},"anthropic\u002Fclaude-sonnet-4.6",[258,334,335],{"class":268},"'",[258,337,338],{"class":268},",\n",[258,340,342,345,347,349,351,353],{"class":260,"line":341},5,[258,343,344],{"class":323},"  preset",[258,346,327],{"class":268},[258,348,282],{"class":268},[258,350,185],{"class":285},[258,352,335],{"class":268},[258,354,338],{"class":268},[258,356,358,361,363,365,368,370],{"class":260,"line":357},6,[258,359,360],{"class":323},"  system",[258,362,327],{"class":268},[258,364,282],{"class":268},[258,366,367],{"class":285},"You review PRs for security issues. Cite file paths and line numbers.",[258,369,335],{"class":268},[258,371,338],{"class":268},[258,373,375,378],{"class":260,"line":374},7,[258,376,377],{"class":268},"}",[258,379,380],{"class":272},")\n",[72,382,383,384,386],{},"See ",[80,385,47],{"href":48}," for more agent patterns.",[105,388,390],{"id":389},"durable-agents-long-running-crash-safe","Durable agents (long-running \u002F crash-safe)",[72,392,393,394,397,398,401,402,405,406,409,410,413,414,417],{},"For chat apps and agents that must ",[113,395,396],{},"survive restarts and retries",", use ",[113,399,400],{},"durable"," execution via the Vercel Workflow SDK. Import ",[75,403,404],{},"createDurableGithubAgent"," from ",[75,407,408],{},"@github-tools\u002Fsdk\u002Fworkflow"," inside a function marked with ",[75,411,412],{},"\"use workflow\"",". Each GitHub tool already runs as a durable ",[75,415,416],{},"\"use step\"",", and the durable agent makes the LLM loop itself step-aware.",[72,419,420,421,423,424,431,432,92],{},"Read the full walkthrough in ",[80,422,51],{"href":52},", or see the ",[80,425,428],{"href":426,"rel":427},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fgithub-tools\u002Ftree\u002Fmain\u002Fexamples\u002Fpr-review-agent",[84],[75,429,430],{},"examples\u002Fpr-review-agent\u002F"," starter for a complete PR review agent connected to GitHub via ",[80,433,436],{"href":434,"rel":435},"https:\u002F\u002Fchat-sdk.dev",[84],"Chat SDK",[105,438,18],{"id":439},"agent-skills",[72,441,442,443,448,449,452,453,456,457,92],{},"Install the ",[113,444,445],{},[75,446,447],{},"github-tools-agents"," skill with ",[75,450,451],{},"npx skills add https:\u002F\u002Fgithub-tools.com",", or use the ",[113,454,455],{},"copy-paste prompts"," embedded on Installation, Quick Start, and the other guide pages. Details: ",[80,458,18],{"href":19},[105,460,462],{"id":461},"three-layers-one-sdk","Three layers, one SDK",[464,465,466,472,477,482],"card-group",{},[467,468,471],"card",{"icon":469,"title":470,"to":60},"i-lucide-wrench","Tools","42 individual GitHub operations you wire into any AI SDK call — each callable as a durable workflow step.",[467,473,476],{"icon":474,"title":475,"to":32},"i-lucide-layers","Presets","Curated tool subsets for focused workflows like code review or issue triage.",[467,478,481],{"icon":479,"title":480,"to":48},"i-lucide-bot","Agents","Pre-configured agents with tools, presets, and system instructions ready to go.",[467,483,486],{"icon":484,"title":485,"to":52},"i-lucide-refresh-cw","Durable workflows","Vercel Workflow, DurableAgent, and crash-safe GitHub tool steps for production agents.",[105,488,490],{"id":489},"external-references","External references",[492,493,494,501,507],"ul",{},[495,496,497],"li",{},[80,498,500],{"href":89,"rel":499},[84],"AI SDK docs",[495,502,503],{},[80,504,506],{"href":82,"rel":505},[84],"GitHub REST API reference",[495,508,509],{},[80,510,513],{"href":511,"rel":512},"https:\u002F\u002Fgithub.com\u002Foctokit\u002Frest.js",[84],"Octokit REST.js",[515,516,517],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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);}",{"title":254,"searchDepth":291,"depth":291,"links":519},[520,521,522,523,524,525,526],{"id":107,"depth":291,"text":108},{"id":134,"depth":291,"text":135},{"id":238,"depth":291,"text":239},{"id":389,"depth":291,"text":390},{"id":439,"depth":291,"text":18},{"id":461,"depth":291,"text":462},{"id":489,"depth":291,"text":490},"AI-callable GitHub tools for generateText, streamText, agent loops, and durable workflows with Vercel Workflow.","md",[530,535,537],{"label":531,"icon":532,"to":60,"color":533,"variant":534},"Browse all tools","i-lucide-list-tree","neutral","subtle",{"label":18,"icon":536,"to":19,"color":533,"variant":534},"i-lucide-sparkles",{"label":538,"icon":539,"to":15,"color":533,"variant":534},"Install the SDK","i-lucide-download",{},{"title":10,"description":527},"tJ-84OSAldLHNXn7OWiDRKyBsys2VDXyQTgsBS_pemo",[544,545],null,{"title":14,"path":15,"stem":16,"description":546,"children":-1},"Install the SDK, configure peer dependencies, and set up your GitHub token.",1779365451999]