Versión2.0.0
Categoríadevelopment
AutenticaciónGitHub App
Herramientas70
Transportestdio
LicenciaMIT
01
Qué hace
La aplicación, en sus propias palabras.
GitHub repository management + local git development environment - repos, issues, pull requests, actions, commits, branches, releases, plus local git operations on cloned repos
02
Herramientas
70 herramientas que el agente puede llamar.
Todas se declaran con parámetros tipados y devuelven resultados estructurados, así que el anfitrión puede renderizarlas en vez de narrarlas.
- add-issue-commentAdd a comment to an issue
- add-labels-to-issueAdd labels to an issue or pull request. Returns the full label set after addition.
- cancel-workflow-runCancel a workflow run that is in progress.
- clone-repoClone a GitHub repository to the local filesystem. Returns {path, branch, sha, recentCommits[]}.
- compare-commitsCompare two commits or branches. `basehead` format `BASE...HEAD`.
- create-branchCreate a new branch from a reference
- create-check-runCreate a check run on a commit (GitHub App exclusive).
- create-issueCreate a new issue in a repository
- create-or-update-fileCreate or update a file in a repo. Pass `sha` of the existing file when updating.
- create-pr-reviewCreate a pull request review. `event` controls the verdict: APPROVE / REQUEST_CHANGES / COMMENT.
- create-pullCreate a new pull request
- create-releaseCreate a GitHub release tagged at `tag_name`.
- create-repoCreate a new repository
- dispatch-eventSend a `repository_dispatch` event to trigger workflows.
- get-branchGet information about a specific branch
- get-commitGet details of a specific commit
- get-file-contentGet the content of a file in a repository
- get-installation-contextList the GitHub App installations reachable by the current user, with accessible repos, granted permissions, and manage/install URLs.
- get-issueGet details of a specific issue
- get-pullGet details of a specific pull request
- get-rate-limitRead the current GitHub API rate-limit budget.
- get-repoGet detailed information about a specific repository
- get-userDeprecated alias for get-installation-context.
- get-workflow-runGet a workflow run.
- git-addStage local changes. Pass an array of paths to stage selectively, or omit `paths` (default `.`) to stage everything.
- git-batch-commitApply multiple file changes (create/update/delete/rename) and create ONE atomic commit. Use this for refactors and any multi-file change where the intermediate states should not be visible in git history.
- git-bisectBinary search for the commit that introduced a bug. Workflow: start → mark each step good/bad → done. Use `reset` to abort.
- git-blamePer-line attribution for a file. Returns `[{ sha, author, date, lineNumber, content }]`. Restrict with `range: "10,50"` or `ref`.
- git-checkoutSwitch branches, create a new branch, or restore specific paths. Returns the new HEAD ref. Set `force: true` to discard local changes (destructive).
- git-cherry-pickCherry-pick commits onto the current branch. Pass `commits: ["sha", ...]` or drive an in-progress pick with `mode: continue/skip/abort`.
- git-commitCreate a commit with the staged changes. Returns `{ sha, branch, message }`. Use `amend: true` to amend the previous commit instead.
- git-configRead or write git config (whitelisted keys only). Default scope is `local` (the repo). For identity, prefer `user.name` and `user.email`.
- git-diffShow differences as unified diff + numstat. Defaults to working tree vs HEAD. `from: staged` for index vs HEAD; pass `from`+`to` commit SHAs for arbitrary diffs.
- git-fetchFetch refs from the remote without merging. Use `refspec` to fetch arbitrary refs (e.g. `pull/<n>/head:pr-<n>` for a PR head, `refs/tags/v1.0.0:refs/tags/v1.0.0` for a tag).
- git-list-filesList files in the repo, respecting `.gitignore`. Returns `{ tracked, untracked, ignored }` arrays. Optionally filter by `pattern` (glob, relative to repo root).
- git-logLocal commit history with structured entries. Defaults to last 20 commits on the current branch. Filter by `ref`, `path`, `author`, `since`/`until`.
- git-mergeMerge a branch/tag/commit into the current branch. On conflict, throws `GIT_CONFLICT` and the agent should resolve via `git-status` + edit + `git-add`.
- git-mvMove or rename a tracked file/directory while preserving git history. Both `from` and `to` are relative to repo root.
- git-pullPull commits from the remote into the current branch. `rebase: true` for a linear history (no merge commit).
- git-pushPush commits to the remote. `force: true` uses `--force-with-lease`; `forceUnsafe: true` uses raw `--force` (destructive).
- git-read-fileRead a file from the working tree or from a specific git revision. Pass `ref` (commit/branch/tag) to read the version at that point.
- git-rebaseRebase the current branch onto another ref (linear history). Or drive an in-progress rebase with `mode: continue/skip/abort`.
- git-remoteList, add, remove, or update git remotes. `list` returns name + fetch/push URLs.
- git-resetReset HEAD to `target`. `mode: soft` keeps staging; `mode: mixed` (default) keeps working tree; `mode: hard` discards everything (destructive).
- git-rmRemove tracked files from the working tree and stage the deletion. Pass `cached: true` to only unstage (without deleting from disk).
- git-stashManage the stash. Default action `push` saves uncommitted changes. Other actions: pop, apply, drop, list, clear.
- git-statusLocal git status: branch, ahead/behind vs upstream, and lists of staged, modified, untracked, and conflicted files.
- git-tagList, create, or delete local git tags. Pass `message` on create for an annotated tag (otherwise lightweight).
- git-write-fileWrite file content into the working tree (creates parent dirs) and stage it. Use `stage: false` to skip staging.
- list-branchesList branches in a repository
- list-commitsList commits in a repository
- list-issuesList issues for a repository with optional filters
- list-pr-commitsList commits on a pull request.
- list-pr-filesList files changed in a pull request.
- list-pr-review-commentsList review comments (inline comments on diff) of a pull request.
- list-pullsList pull requests for a repository
- list-releasesList releases of a repository, newest first.
- list-reposList repositories accessible to the current user via the GitHub App (across every installation reachable). Pass `owner` to filter.
- list-workflow-run-jobsList jobs of a workflow run.
- list-workflow-runsList workflow runs for a repository
- list-workflowsList workflows in a repository
- merge-pullMerge a pull request
- request-reviewersRequest reviewers on a pull request.
- rerun-workflow-runRe-run a workflow run. Default re-runs only failed jobs.
- search-codeSearch for code across GitHub repositories
- search-issuesSearch issues and pull requests across GitHub. Use GitHub search syntax in `q`.
- search-reposSearch for repositories on GitHub
- trigger-workflowTrigger a workflow dispatch event
- update-check-runUpdate an existing check run.
- update-issueUpdate an existing issue. Setting `state: "closed"` closes it. `labels` REPLACES the entire label set — use add-labels-to-issue to append.
03
Autenticación y permisos
Qué pide.
Declarado en el manifiesto y por adelantado. La aplicación no puede alcanzar nada que no haya pedido aquí.
Secretos de sistema
GITHUB_APP_IDGITHUB_APP_CLIENT_IDGITHUB_APP_CLIENT_SECRETGITHUB_APP_PRIVATE_KEYGITHUB_APP_WEBHOOK_SECRETGITHUB_APP_SLUG
Secretos de usuario
INSTALLATION_IDUSER_ACCESS_TOKENUSER_REFRESH_TOKENUSER_TOKEN_EXPIRES_ATUSER_LOGIN
Seguir leyendo
El manifiesto y el código de GitHub están en el monorepo, junto al resto de aplicaciones.