Official agent skill

GitHub Tools Agents

by vercel-labs in vercel-labs/github-tools

Give an AI agent GitHub access via @github-tools/sdk. An agent skill from vercel-labs/github-tools.

OfficialMITAuto-check passed

Install GitHub Tools Agents

skills CLI
$ npx skills add vercel-labs/github-tools --skill github-tools-agents -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vercel-labs/github-tools github-tools-agents --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vercel-labs/github-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/docs/skills/github-tools-agents .claude/skills/github-tools-agents && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
github-tools-agents
GitHub stars
131
Token cost
~2.8k tokens
SKILL.md length
1,035 words
Files
7 (incl. scripts, references)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Give an AI agent GitHub access via @github-tools/sdk. An agent skill from vercel-labs/github-tools.

  • SKILL.md covers When to use, Install (required), Quick integration patterns and Presets, plus 5 more sections
  • Runs Python scripts from its folder; calls python and pnpm; needs GITHUB_TOKEN

What it does

GitHub Tools Agents is an agent skill from vercel-labs/github-tools, published by the product's own GitHub organization. Give an AI agent GitHub access via @github-tools/sdk. Mount as an eve extension, or use with the AI SDK, Vercel Workflow, and Chat SDK. Covers tools, presets, approval control, token scoping, and durable agents.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts and reference files (for example `references/durable-workflows.md`, `references/eve-agents.md` and `references/eve-extension.md`).

It works with GitHub, Vercel and Vercel AI SDK. The repository describes itself as: GitHub tools and agents for the Vercel AI SDK, wrap GitHub's API as AI SDK tools ready to plug into any agent. The licence is MIT.

Example prompts

  • “/github-tools-agents”

Requirements

  • Python 3
  • A credential in GITHUB_TOKEN

What it can do on your machine

Read from SKILL.md and the folder at commit 75d4f44. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • npmjs.com
    • github-tools.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

GitHub Tools Agents loads about 2.8k tokens when it runs, and up to ~5.8k if it reads all its reference files. Until then it costs about 58 tokens; SKILL.md has 1,035 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from vercel-labs/github-tools at commit 75d4f44, republished under its MIT licence (© vercel-labs). 1,035 words, ~2,809 tokens.

Download SKILL.mdSave it as .claude/skills/github-tools-agents/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
github-tools-agents
description
Give an AI agent GitHub access via @github-tools/sdk. Mount as an eve extension, or use with the AI SDK, Vercel Workflow, and Chat SDK. Covers tools, presets, approval control, token scoping, and durable agents.
license
MIT
metadata.author
HugoRCD
metadata.repository
https://github.com/vercel-labs/github-tools
metadata.url
https://github-tools.com/.well-known/skills
metadata.version
1.3.0
metadata.keywords
ai, agent, skill, vercel, ai sdk, github, tools, octokit, durable, workflow

GitHub tools for AI agents

Use this skill when the user wants GitHub API access from an LLM via the @github-tools/sdk package: generateText / streamText, createGithubAgent, or durable createDurableGithubAgent with the Vercel Workflow SDK.

Official docs: https://github-tools.com, with paths such as /getting-started/installation, /getting-started/quick-start, /frameworks/ai-sdk, /frameworks/eve-extension, /deprecated/eve (deprecated direct import), /frameworks/vercel-workflow, /frameworks/chat-sdk, /guide/approval-control, /guide/tokens-and-auth, /api/reference. Copy-prompts for assistants are embedded on those pages.

When to use

  • Build an agent (eve, recommended): "Add GitHub tools to an eve agent" / defineExtension / @github-tools/eve-extension; the direct @github-tools/sdk/eve / defineDynamic import is deprecated.
  • Greenfield AI SDK app: "Add GitHub tools to my AI app" / "Wire Octokit-style ops for the model."
  • Existing repo: "We already use the AI SDK, add repo/PR/issue tools."
  • Reusable agent: "Use createGithubAgent with a preset" / custom system instructions.
  • Durable: "Run the agent inside Vercel Workflow" / "use workflow" / crash-safe tool steps.
  • Safety: "Gate merges / file writes with approval" / fine-grained PAT scopes.
  • Narrow scope: Prefer a preset (code-review, issue-triage, repo-explorer, ci-ops, security-audit, release-manager, discussion-moderator, notification-inbox, pr-author, maintainer) or cherry-picked tool factories. For multi-role products, use a manager with preset-scoped sub-agents (/examples/manager-agent-with-subagents).

Install (required)

bash
pnpm add @github-tools/sdk ai zod

Set GITHUB_TOKEN (fine-grained PAT recommended). The SDK reads process.env.GITHUB_TOKEN when token is omitted.

Quick integration patterns

Tools only
ts
import { createGithubTools } from '@github-tools/sdk'
import { generateText } from 'ai'

await generateText({
  model,
  tools: createGithubTools({ preset: 'code-review' }),
  prompt: '…',
})
Reusable agent (ToolLoopAgent)
ts
import { createGithubAgent } from '@github-tools/sdk'

const agent = createGithubAgent({
  model: 'anthropic/claude-opus-5.5',
  preset: 'code-review',
  context: { owner: 'vercel', repo: 'ai', pullNumber: 42 },
})
await agent.generate({ prompt: 'Review this PR' })
Durable agent (Vercel Workflow)

Requires optional peers: workflow, @ai-sdk/workflow. Import from @github-tools/sdk/workflow.

ts
import { createDurableGithubAgent } from '@github-tools/sdk/workflow'
import { getWritable } from 'workflow'

export async function run(messages: ModelMessage[], token: string) {
  'use workflow'
  const agent = createDurableGithubAgent({ model, token, preset: 'maintainer' })
  const writable = getWritable<UIMessageChunk>()
  await agent.stream({ messages, writable })
}

Limitation: Durable agents require @ai-sdk/workflow and WorkflowChatTransport on the client for resumable streams. For predicate/once approval policies, use the eve extension.

Requires eve as a peer, declared * and checked through the extension's generated capability metadata (transitively ai v7); built against eve 0.64. Mount from @github-tools/eve-extension under agent/extensions/.

ts
// agent/extensions/github.ts
import githubExtension from '@github-tools/eve-extension'

export default githubExtension({ preset: 'code-review' })

See ./references/eve-extension.md and /frameworks/eve-extension.

eve agent, direct import (deprecated)

Requires optional peers: eve, ai v7. Import from @github-tools/sdk/eve. Prefer the eve extension above for new agents.

ts
// agent/tools/github.ts
import { createGithubTools } from '@github-tools/sdk/eve'

export default createGithubTools({ preset: 'code-review' })

See ./references/eve-agents.md and /deprecated/eve.

Presets

PresetPurpose
code-reviewPRs, commits, files, review comments, review threads (list/reply/resolve)
issue-triageIssues via getIssueContext, comments, reactions, create/close, assignees
repo-explorerRead-only + search + discussions/gists/workflows reads
ci-opsActions workflows, runs, job logs, trigger/cancel/rerun
security-auditVulnerability scanning, risk reporting
release-managerChangelog generation, release cutting
discussion-moderatorDiscussions list/get/comment plus light issue context
notification-inboxUser notification triage (needs Notifications PAT)
pr-authorBranches (create/delete), file edits, open/update PRs, respond to review threads
maintainerAll 84 tools

Array presets merge: preset: ['code-review', 'issue-triage']. Start with the smallest preset that fits; use maintainer when you need the full catalog. Multi-role: manager + sub-agents each with one preset.

For an agent that takes open-ended requests, createGithubAgent({ preset: 'auto' }) picks presets per call from the latest user message, narrows the active tools, and uses the matching system prompt. It combines at most two presets; when none clearly matches it uses the most likely one (read-only repo-explorer when nothing stands out). It never exposes the full catalog. Needs ai >= 7.0.105; not on the durable agent.

Working context

Pass context: { owner, repo, pullNumber?, issueNumber?, ref? } to createGithubTools / createGithubAgent / createDurableGithubAgent to default those fields on tool inputs and inject them into the agent system prompt. Prefer composite tools (getPullRequestContext, getIssueContext, getReleaseContext, getCiFailureContext) for multi-part reads — call follow-up reads in the same step when possible. Diff patches are omitted by default — set includePatch: true (optionally with filenames) when you need specific diffs. Bodies are truncated by default (detail: 'summary'). getIssueContext returns labelNames (strings) rather than full label objects. Prefer getFileContent with startLine/endLine or maxLines for large files. getWorkflowJobLogs returns the last 200 log lines with timestamps stripped — raise maxLines (up to 2000) only when needed. listPullRequestReviewThreads returns unresolved threads only by default with truncated comment bodies. REST list tools return { items, hasMore, page, nextPage } (or add those fields next to checkRuns / runs); when hasMore, call with nextPage or raise maxPages — never the same page. Filter listCommits with path / author / since / until. Prefer a path prefix on getRepositoryTree over recursive: true. Object-shaped execute results include rateLimit (remaining / limit / reset / resource); it is stripped from the model-facing output. On 403/429 the error text includes remaining/reset.

Classifiable failures are structured evlog catalog errors (githubToolsErrors, codes prefixed github_tools.) with why/fix fields: 401 UNAUTHORIZED, 403 FORBIDDEN, 403/429 RATE_LIMITED, 404 NOT_FOUND (also thrown when the token cannot see a private resource — GitHub masks no-access as 404), 422 VALIDATION_FAILED, plus auth/Connect codes (TOKEN_REQUIRED, OIDC_TOKEN_EXPIRED, CONNECT_USER_NOT_CONNECTED, …). In eve, tool failures return { error: { code, message, why, fix, link } }; with generateText/streamText the message alone is forwarded and is self-sufficient — use evlog's parseError for the full structure.

Show full SKILL.md (321 more words)Show less

Write safety

  • Default: writes go through approval (AI SDK tool approval flow) unless requireApproval: false or per-tool overrides.
  • For interactive agents, prefer requireApproval: 'auto': low-risk writes (labels, assignees, reactions, comments, review replies, reviewer requests, notification reads, workflow re-runs) run without a prompt when an evaluation model rates them low-risk and asked for by the user; everything else still asks. Per tool: { updateIssue: 'auto', mergePullRequest: true }. Tune with evaluation: { maxRisk, minIntent, model } only when needed. Needs ai >= 7.0.105; not on the durable agent. If the evaluation model fails (not enabled on AI Gateway, no credits, outage), 'auto' approval asks and preset: 'auto' uses repo-explorer, each logging a github_tools.EVALUATION_FAILED warning.
  • Map token scopes to tools (Actions, Contents, Issues, Pull requests, Discussions, Gists, …). Reactions fall under Issues. Gist and notification tools need account-level PAT permissions and do not work with a Vercel Connect installation token.
  • Prefer addIssueReaction / addCommentReaction over a comment when only acknowledging a thread.

Durable steps

Each packaged tool uses a named module-level "use step" function so individual GitHub calls register as workflow steps when running under the Workflow SDK. See ./references/durable-workflows.md.

Reference Documentation

Each reference file includes YAML frontmatter with name, description, and tags for searchability. Use the search script available in scripts/search_references.py to quickly find relevant references by tag or keyword.

  • Durable Workflows: Best practices for using GitHub tools within Vercel Workflow, including step directives and streaming responses.
  • eve Extension: Recommended way to add GitHub tools to an eve agent, mount as an extension via defineExtension, approval policies, and the examples/eve starter.
  • eve Agents (deprecated): Register GitHub tools in eve via the deprecated direct defineDynamic import.
  • Existing Project Integration: How to integrate GitHub tools into an existing codebase, including environment variable management and framework-specific hooks.
  • Tokens and Approval: Guidance on mapping GitHub token scopes to specific tools and configuring approval flows for safe write operations.
Searching References
bash
# List all references with metadata
python scripts/search_references.py --list

# Search by tag (exact match)
python scripts/search_references.py --tag <tag>

# Search by keyword (across name, description, tags, and content)
python scripts/search_references.py --search <query>

Scripts

  • scripts/search_references.py: Search reference files by tag, keyword, or list all with metadata

© vercel-labs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 6 other files (scripts, references) in apps/docs/skills/github-tools-agents of vercel-labs/github-tools.

  • SKILL.md
  • references/durable-workflows.md
  • references/eve-agents.md
  • references/eve-extension.md
  • references/existing-project-integration.md
  • references/tokens-and-approval.md
  • scripts/search_references.py

Open the folder on GitHubat commit 75d4f44

Compare with similar skills

GitHub Tools Agents next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

GitHub Tools Agents compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
GitHub Tools Agents this skillvercel-labs/github-tools131—~2.8kAutomated safety check: PassMIT
Create Vercel AI IssueFranciscoMoretti/chat-js1.2k—~203Automated safety check: PassApache-2.0
Chat SDKvercel/vercel-plugin301—~2.9kAutomated safety check: PassCustom licence
AI SDKvercel-labs/ai-facts16821 repos~1.2kAutomated safety check: PassNone
Before And Aftersanity-io/sanity6.4k1 repos~2.1kAutomated safety check: PassMIT
Run Paritymillionco/react-doctor15k—~4.1kAutomated safety check: PassCustom licence

Similar skills

  • Create Vercel AI Issue

    FranciscoMoretti/chat-js

    Create a well-formed GitHub issue in vercel/ai using the gh CLI.

    1.2k GitHub stars~203 tokensUpdated today
    Auto-check passed
  • Chat SDK

    vercel/vercel-plugin

    Official

    Vercel Chat SDK expert guidance. An agent skill from vercel/vercel-plugin.

    301 GitHub stars~2.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • AI SDK

    vercel-labs/ai-facts

    Official

    Answer questions about the AI SDK and help build AI-powered features.

    168 GitHub starsUsed in 21 repos~1.2k tokens
    AI & LLM EngineeringAuto-check passed
  • Before And After

    sanity-io/sanity

    Official

    Add existing screenshots or screen recordings to a GitHub pull request as a before/after or preview block.

    6.4k GitHub starsUsed in 1 repo~2.1k tokens
    Productivity & AutomationAuto-check passed
  • Run Parity

    millionco/react-doctor

    Compare React Doctor diagnostics for a GitHub pull request (PR) with Vercel Sandbox.

    15k GitHub stars~4.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Jevgrep

    dzhng/jevgrep

    A skill your agent uses for questions about how, why, or where behavior works in a repository, including questions that name a function or setting.

    2.4k GitHub stars~741 tokensUpdated 5 days ago
    DevelopmentAuto-check passed

More from vercel-labs/github-tools

  • Developer Docs Technical Writer

    vercel-labs/github-tools

    Official

    Writes, reviews and edits developer documentation for SDKs, libraries and frameworks, from getting-started guides and API references to migration guides.

    131 GitHub stars~3.9k tokensUpdated 8 days ago
    Auto-check passed

Questions about GitHub Tools Agents

What does GitHub Tools Agents do?

Give an AI agent GitHub access via @github-tools/sdk. An agent skill from vercel-labs/github-tools. GitHub Tools Agents is an agent skill from vercel-labs/github-tools, published by the product's own GitHub organization. Give an AI agent GitHub access via @github-tools/sdk.

How do I install GitHub Tools Agents in Claude Code?

Run `npx skills add vercel-labs/github-tools --skill github-tools-agents -a claude-code`. Or copy the skill folder (apps/docs/skills/github-tools-agents in vercel-labs/github-tools) into .claude/skills/github-tools-agents in your project. Claude Code loads it when a task matches its description.

How do I install GitHub Tools Agents in Codex?

Run `npx skills add vercel-labs/github-tools --skill github-tools-agents -a codex`. Or copy the skill folder (apps/docs/skills/github-tools-agents in vercel-labs/github-tools) into .agents/skills/github-tools-agents in your project. Codex loads it when a task matches its description.

Can I use GitHub Tools Agents in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vercel-labs/github-tools --skill github-tools-agents -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/github-tools-agents, .gemini/skills/github-tools-agents, .github/skills/github-tools-agents and .opencode/skills/github-tools-agents in your project.

What does GitHub Tools Agents need to run?

Going by SKILL.md and its folder, GitHub Tools Agents needs Python for the scripts in its folder, the command-line tools its instructions call (python and pnpm) and credentials named GITHUB_TOKEN. Our summary lists: Python 3; A credential in GITHUB_TOKEN.

Does GitHub Tools Agents access the network?

SKILL.md names 2 domains. As links in the text: npmjs.com and github-tools.com. This is read from the text; nothing was executed.

Is GitHub Tools Agents safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does GitHub Tools Agents use?

GitHub Tools Agents is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does GitHub Tools Agents use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.

What are the alternatives to GitHub Tools Agents?

Skills that share tags, products or a category with GitHub Tools Agents: Create Vercel AI Issue (FranciscoMoretti/chat-js, 1.2k stars), Chat SDK (vercel/vercel-plugin, 301 stars), AI SDK (vercel-labs/ai-facts, 168 stars) and Before And After (sanity-io/sanity, 6.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains GitHub Tools Agents?

vercel-labs (a GitHub organization, an official publisher) maintains it in vercel-labs/github-tools, which has 131 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 29, 2026.

Source: vercel-labs/github-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.