Api
Every available tool, grouped by domain and write-safety status. Tools run as durable workflow steps when used with Vercel Workflow.

Each tool is implemented with a durable "use step" boundary, so calls are proper workflow steps (retries, observability, full Node) when you run inside the Vercel Workflow SDK. For a full agent loop that is also durable, use createDurableGithubAgent from @github-tools/sdk/workflow. For eve agents, mount @github-tools/eve-extension (the deprecated createGithubTools from @github-tools/sdk/eve also still works).

Cherry-pick GitHub tool factories

Repository tools

Available in all presets. These tools manage repositories, branches, and file content:

ToolCapabilityWrite
getRepositoryread repository metadata (name, description, stars, language)No
listBrancheslist branches and their HEAD commitsNo
getFileContentread a file at a path/ref; prefer startLine/endLine or maxLines for large filesNo
getRepositoryTreelist the file and directory structure at a given ref (prefer a path prefix over recursive: true)No
createBranchcreate a new branch from an existing branch or commit SHAYes
deleteBranchpermanently delete a branchYes
forkRepositoryfork a repository to your account or an organizationYes
createRepositorycreate a new repository for the authenticated user or an organizationYes
createOrUpdateFilecreate or update a file in the repositoryYes

Pull request tools

Available in code-review and maintainer presets:

ToolCapabilityWrite
listPullRequestslist pull requests filtered by stateNo
getPullRequestread PR details including diff stats (body truncated by default; set detail: full for complete text)No
listPullRequestFileslist files changed in a PR (patches omitted by default; set includePatch / filenames for diffs)No
listPullRequestReviewslist reviews on a PR (approvals, change requests, comments)No
listPullRequestReviewThreadslist review threads with comments, resolution state, and reply/resolve IDs (unresolved only by default)No
getPullRequestContextfetch PR details plus files, reviews, and optional CI checks in one callNo
createPullRequestopen a new pull requestYes
mergePullRequestmerge a pull requestYes
updatePullRequestupdate a pull request's title, body, state, base branch, or draft statusYes
addPullRequestCommentpost a comment on a pull requestYes
updatePullRequestCommentedit the body of a pull request commentYes
deletePullRequestCommentpermanently delete a pull request commentYes
createPullRequestReviewsubmit a formal review (approve, request changes, or comment) with inline commentsYes
replyToReviewCommentreply to a review comment in its threadYes
resolveReviewThreadmark a review thread as resolvedYes
requestReviewersrequest reviews from users or teams on a pull requestYes

Issue tools

Available in issue-triage and maintainer presets:

ToolCapabilityWrite
listIssueslist issues filtered by state and labelsNo
getIssueread issue details (body truncated by default; set detail: full for complete text)No
getIssueContextfetch an issue plus label names and recent comments in one callNo
listIssueCommentslist comments on an issue (paginated; prefer getIssueContext first)No
createIssuecreate a new issueYes
addIssueCommentpost a comment on an issueYes
updateIssueCommentedit the body of an issue commentYes
deleteIssueCommentpermanently delete an issue commentYes
closeIssueclose an issue threadYes
updateIssueupdate an issue's title, body, labels, milestone, or assignees — set state: 'open' to reopenYes
listLabelslist labels available in a repositoryNo
addLabelsadd labels to an issue or pull requestYes
removeLabelremove a label from an issue or pull requestYes
createLabelcreate a label in a repositoryYes
updateLabelupdate a label's name, color, or descriptionYes
deleteLabeldelete a label from a repository permanentlyYes
addAssigneesassign users to an issue or pull requestYes
removeAssigneesremove assignees from an issue or pull requestYes

Reaction tools

Available in issue-triage and maintainer presets. Pull request conversations share the issue numbering, so listIssueReactions and addIssueReaction work on PRs too:

ToolCapabilityWrite
listIssueReactionslist reactions on an issue or pull request, with per-emoji countsNo
addIssueReactionreact to an issue or pull request (+1, -1, laugh, confused, heart, hooray, rocket, eyes)Yes
listCommentReactionslist reactions on an issue or pull request commentNo
addCommentReactionreact to an issue or pull request commentYes

Reactions acknowledge a report without adding a comment to the thread. They're covered by the Issues permission, so no extra token scope is needed.

Discussion tools

Available in repo-explorer (read-only) and maintainer presets. These use the GitHub GraphQL API:

ToolCapabilityWrite
listDiscussionslist discussions, most recently updated first, optionally filtered by category nameNo
getDiscussionread a discussion by number (body truncated by default; set detail: full for complete text)No
addDiscussionCommentpost a comment on a discussionYes

listDiscussions paginates by cursor: pass the endCursor it returns as after to fetch the next page.

Notification tools

Available in the maintainer preset:

ToolCapabilityWrite
listNotificationslist notification threads for the authenticated user (unread only unless all: true)No
markNotificationReadmark a single notification thread as readYes

Notifications belong to a user, not a repository. They need a PAT with the Notifications account permission and do not work with a Vercel Connect installation token — see Tokens and Authentication.

Gist tools

Available in repo-explorer (read-only) and maintainer presets:

ToolCapabilityWrite
listGistslist gists for the authenticated user or a specific userNo
getGistread a gist including file contentsNo
listGistCommentslist comments on a gistNo
createGistcreate a new gist with one or more filesYes
updateGistupdate gist description, files, or remove filesYes
deleteGistpermanently delete a gistYes
createGistCommentpost a comment on a gistYes

Workflow tools

Available in repo-explorer (read-only), ci-ops, and maintainer presets:

ToolCapabilityWrite
listWorkflowslist GitHub Actions workflows in a repositoryNo
listWorkflowRunslist workflow runs filtered by workflow, branch, status, or eventNo
getWorkflowRunread a workflow run's status, timing, and trigger infoNo
listWorkflowJobslist jobs in a workflow run with step-level statusNo
getWorkflowJobLogsread a job's log output (last 200 lines by default, timestamps stripped; raise maxLines for more)No
triggerWorkflowtrigger a workflow via workflow_dispatch eventYes
cancelWorkflowRuncancel an in-progress workflow runYes
rerunWorkflowRunre-run a workflow run, optionally only failed jobsYes

Checks and statuses tools

Available in repo-explorer, code-review, ci-ops, security-audit, and maintainer presets:

ToolCapabilityWrite
listCheckRunslist check runs (Checks API: GitHub Actions and other CI providers) for a commit, branch, or tagNo
getCombinedStatusget the combined commit status (Statuses API: legacy CI integrations) for a commit, branch, or tagNo
getCiFailureContextdiagnose CI failures for a ref — combined status, failing checks, and failed workflow jobs in one callNo

Release tools

Available in repo-explorer, release-manager, and maintainer presets:

ToolCapabilityWrite
listReleaseslist releases for a repository, newest first (includes drafts and prereleases)No
getLatestReleaseget the latest published release (body truncated by default; set detail: full for complete notes)No
getReleaseget a specific release by ID, including its assetsNo
getReleaseContextfetch a release plus the previous release and tag comparison in one callNo
createReleasecreate a new release (and its tag if needed)Yes
updateReleaseupdate a release's tag, target, title, notes, draft, or prerelease statusYes
deleteReleasepermanently delete a release (does not delete the underlying git tag)Yes

Search and commit tools

Available in all presets:

ToolCapabilityWrite
listCommitslist commit history (filter with path / author / since / until; when hasMore, pass nextPage)No
getCommitread a single commit with file stats (patches omitted by default; set includePatch for diffs)No
getBlameline-level git blame for a file (GraphQL)No
compareCommitscompare two branches, tags, or commits: ahead/behind counts, commits in between, and files that differ (patches omitted by default)No
searchCodesearch code across repository files, with matching text snippets when GitHub returns themNo
searchRepositoriessearch repositories by queryNo
searchIssuessearch issues and pull requests using qualifiers like is:open or type:prNo

Paged list results

REST list tools return { items, hasMore, page, perPage, nextPage? } — or add those paging fields next to existing keys (checkRuns, runs, workflows, jobs). When hasMore is true, call again with nextPage (not the same page), or set maxPages to combine sequential pages in one call. Filter listCommits with path / author / since / until instead of walking the full history. getRepositoryTree accepts a path prefix; prefer that over recursive: true.

Identify write operations

All tools marked Write can be gated with requireApproval. In production, always pair them with:

  • a scoped preset to limit which writes are available
  • a fine-grained token to limit what the token can do
  • an explicit approval policy to intercept mutations before execution

External references