GitHub via the official OpenAPI 3 spec — gives the LLM full request and response types so it doesn't have to guess pagination shape, field names, or wrapper-vs-array.
Untyped GitHub tooling forces the LLM to shape-probe on every call. Common failures observed in production traces:
.forEachon the listIssues result (it's{issues, totalCount, pageInfo}, not a bare array)i.user.loginvsi.author.loginfield-name guessingqvsqueryargument-name confusion
This pack reads the canonical GitHub OpenAPI 3 spec from
github/rest-api-description and surfaces it via the assistant's
existing OpenAPI learner. The LLM gets full typed interfaces.ts
including pagination wrappers and response field names.
Methods land under gateway.gh. E.g.:
gateway.gh.issues_list_for_repo({owner, repo, ...})gateway.gh.users_get_by_username({username})gateway.gh.search_issues({q})gateway.gh.issues_create({owner, repo, title, body})
See prompts/examples.md for usage patterns.
Set GITHUB_PERSONAL_ACCESS_TOKEN in the credential store or
environment. Fine-grained PATs and classic PATs both work (Bearer auth).
The full spec is 600+ operations. This pack filters to five high-value
tags: issues, pulls, repos, users, search. Edit apis/apis.yml
to add more (e.g. actions, git, code-scanning).