pi-gh-cli
v0.2.4
Published
Structured GitHub CLI tools for Pi agents
Downloads
258
Maintainers
Readme
pi-gh-cli
Structured GitHub CLI (gh) tools for Pi agents.
Install
pi install npm:pi-gh-cliOr try without installing:
pi -e npm:pi-gh-cliRequires GitHub CLI:
gh auth loginTools (Layer 1 primitives)
One tool per GitHub resource. Agent owns orchestration.
gh_issue— list/view/create/comment/edit/close/reopen issuesgh_pr— list/view/checks/diff/create/comment/review/merge/close/reopen/ready/checkout/update_branch PRsgh_repo— view/list/default/create/edit repositoriesgh_run— list/view/watch/rerun/cancel/download GitHub Actions runsgh_workflow— list/view/run/enable/disable workflowsgh_release— list/view/create/edit/delete/upload/download releasesgh_label— list/create/edit/delete/clone labelsgh_search— repos/issues/prs/code/commits searchgh_secret— list/set/delete Actions/Codespaces/Dependabot secretsgh_variable— list/get/set/delete Actions variablesgh_gist— list/view/create/edit/delete/clone gistsgh_api— escape-hatch authenticatedgh apirequests (REST + GraphQL)gh_auth_status— read-only auth check, never shows tokens
Result envelope
Each tool returns:
content[0].text— formatted stdout (JSON pretty-printed when possible)details.command— fullghargvdetails.parsed— parsed JSON if applicabledetails.actionClass—read|local_mutation|github_mutation|destructivedetails.warnings— e.g. missing repo on mutation, unread paginationdetails.nextSuggested— hints for follow-up callsdetails.fullOutputPath— set when truncated
Safety
- Argument arrays, no shell quoting.
- Defaults to
gh --jsonfields where available; passfields=to override. - Tools never request interactive confirmation. State-changing actions run non-interactively when invoked.
- Prompt-prone actions validate required args or pass blank bodies/notes rather than opening editors.
- Destructive actions (
delete) auto-pass--yes; caller intent gates tool invocation. - Each
ghprocess has a bounded timeout. Full output saved to a temp file when truncated. - Bodies/notes/secrets accept
bodyFile/notesFileto avoid shell quoting and accidental logging.
Agent usage patterns
Read before write:
gh_praction=viewwithfields=number,title,isDraft,reviewDecision,mergeStateStatus,statusCheckRollup,headRefOid- Decide based on returned state.
gh_praction=mergewithmergeMethod=squashandmatchHeadCommit=<headRefOid>.
Always pass repo=OWNER/REPO for mutations to avoid current-directory inference.
For endpoints not covered, use gh_api. Prefer the typed tool when available.
Examples
Ask Pi:
List open PRs in this repo
Show failed logs for latest failing Actions run
Comment on issue #123 with this summary
For GitHub endpoints not covered by the specific tools, use gh_api.
