GitHub Voice

@tuttiai/github — interact with GitHub repositories, issues, and PRs

The GitHub voice gives agents access to the GitHub API — issues, pull requests, repositories, and code search.

Installation

npx tutti-ai add github

Required permissions

permissions: ["network"]

Required environment variables

VarDescription
GITHUB_TOKENGitHub personal access token (or fine-grained token)

Add to your .env:

GITHUB_TOKEN=ghp_your_token_here

Configuration

// Default: reads GITHUB_TOKEN from env
new GitHubVoice()

// Explicit token
new GitHubVoice({ token: "ghp_..." })

Tool reference

ToolDescriptionKey inputs
list_issuesList issues in a repoowner, repo, state, labels, limit
get_issueGet issue detailsowner, repo, issue_number
create_issueCreate a new issueowner, repo, title, body, labels
comment_on_issueAdd a commentowner, repo, issue_number, body
list_pull_requestsList PRsowner, repo, state, limit
get_pull_requestGet PR detailsowner, repo, pull_number
get_file_contentsGet a file from a repoowner, repo, path, ref
search_codeSearch code across GitHubquery, limit
list_repositoriesList repos for a user/orgowner, type, limit
get_repositoryGet repo detailsowner, repo

list_issues

InputTypeDefaultDescription
ownerstringRepository owner
repostringRepository name
state"open" | "closed" | "all""open"Filter by state
labelsstring?Comma-separated labels
limitnumber20Max results (1-100)

create_issue

InputTypeDefaultDescription
ownerstringRepository owner
repostringRepository name
titlestringIssue title
bodystring?Issue body (Markdown)
labelsstring[]?Labels to apply

search_code

InputTypeDefaultDescription
querystringGitHub code search query
limitnumber10Max results

Example

import { AnthropicProvider, defineScore } from "@tuttiai/core";
import { GitHubVoice } from "@tuttiai/github";

export default defineScore({
  provider: new AnthropicProvider(),
  agents: {
    triager: {
      name: "Issue Triager",
      model: "claude-sonnet-4-20250514",
      system_prompt: `You help triage GitHub issues. When asked about a repo,
list the open issues, summarize them, and suggest priorities.`,
      voices: [new GitHubVoice()],
      permissions: ["network"],
    },
  },
});
> What are the top open issues in facebook/react?

  Using tool: list_issues
  Done: list_issues

Here are the top open issues in facebook/react:

1. #28123 — useEffect cleanup order with Suspense (bug, 45 comments)
2. #28089 — Server Components streaming error handling (enhancement)
...

Edit this page on GitHub →