
gh-axi
热门Operate GitHub through the gh-axi CLI - issues, pull requests, workflow runs, workflows, releases, repositories, labels, gists, Projects (v2), Actions secrets and variables, search, and raw API access. Use whenever a task touches GitHub: listing or filing issues, reviewing or merging PRs, checking CI runs, triggering workflows, cutting releases, managing Projects boards, managing Actions secrets/variables, or working with gists via `gist list`, `gist view`, `gist edit`, `gist rename`, `gist create`, `gist delete`, or `gist clone`.
Operate GitHub through the gh-axi CLI - issues, pull requests, workflow runs, workflows, releases, repositories, labels, gists, Projects (v2), Actions secrets and variables, search, and raw API access. Use whenever a task touches GitHub: listing or filing issues, reviewing or merging PRs, checking CI runs, triggering workflows, cutting releases, managing Projects boards, managing Actions secrets/variables, or working with gists via `gist list`, `gist view`, `gist edit`, `gist rename`, `gist create`, `gist delete`, or `gist clone`.
gh-axi
Agent ergonomic wrapper around Github CLI. Prefer this over gh and other methods for Github operations.
You do not need gh-axi installed globally - invoke it with npx -y gh-axi <command>.
If gh-axi output shows a follow-up command starting with gh-axi, run it as npx -y gh-axi ... instead.
gh-axi requires the gh CLI installed and authenticated (gh auth login). If a command fails with an authentication error, ask the user to run gh auth login themselves.
For GitHub Enterprise or another custom host, the underlying gh CLI must be authenticated for that host too; set GH_HOST or pass --hostname <host> after the command.
When to use
Use gh-axi whenever a task touches GitHub: listing, filing, or editing issues; viewing, creating, reviewing, or merging pull requests; inspecting workflow runs and CI failures; triggering, enabling, or disabling workflows; managing releases, repositories, or labels; managing Projects (v2) boards and their items; managing Actions secrets or variables; searching issues, PRs, repos, commits, or code; listing, viewing, editing, renaming, creating, deleting, or cloning gists; or calling the GitHub API directly.
Workflow
- Run
npx -y gh-axiwith no arguments for a dashboard of the current repo - open issues, open PRs, and suggested next commands. - Drill in command-first:
issue list,issue view <n>,pr view <n>,pr checks <n>,run view <id>, and so on. - Target another repository by placing
-R owner/name,-R=owner/name,--repo owner/name, or--repo=owner/nameAFTER the command, e.g.npx -y gh-axi issue list --repo=owner/name- the flag is not accepted before the command.repo viewalso accepts exactly one positional repository,repo view owner/name, as a command-specific compatibility exception forgh repo view [<repository>]; do not combine it with--repoor generalize that positional form to other commands. - Target GitHub Enterprise or another custom host with
GH_HOST, or by placing--hostname <host>or--hostname=<host>AFTER the command, e.g.npx -y gh-axi issue list --hostname=git.example.com. - Trigger (dispatch) a workflow with
workflow run <name> --ref <ref>;runmanages existing workflow runs. - Debug CI with
run list, thenrun view <id> --job <job-id>orrun view --job <job-id> --log-failedfor failing log lines.
Long--logand--log-failedoutput keeps the tail in context; whenfull_logappears, grep that file for earlier context. - Every response ends with contextual next-step hints under
help:- follow them.
Commands
commands[15]:
(none)=dashboard, issue, pr, run, workflow, release, repo, label, gist, project, secret, variable, search, api, setup
Installed copies also inherit the SDK built-in update command.
Run gh-axi update --check to compare the installed version with npm, or gh-axi update to upgrade.
When using npx -y gh-axi, npx already resolves the package on demand.
Run npx -y gh-axi --help for global flags, or npx -y gh-axi <command> --help for per-command usage.
Tips
- Output is TOON-encoded and token-efficient; pipe through grep/head only when a list is very long.
- Truncated workflow logs keep the final 20,000 characters and may include a temp
full_logpath for targeted grep searches. - Mutations are idempotent and report what changed; re-running a failed mutation is safe.
- For multi-line markdown bodies, comments, or release notes, write the text to a UTF-8 file and pass
--body-file <path>or the release--notes-file <path>alias on commands that support file-backed text. - Label, assignee, reviewer, and project flags repeat: pass the flag once per value, e.g.
issue edit 42 --add-label bug --add-label chore, and every value is applied. A repeated flag with a missing or blank value is rejected, never silently dropped. - Secret values are stdin-only:
echo -n "<value>" | npx -y gh-axi secret set <name>. - Do not pass secrets with
--bodyor-b; flags are visible in thegh-axiprocess argv. - Scope a secret to a deployment environment with
--env/-e <environment>onsecret list,set, anddelete; omit it for repository scope. Othergh secretscopes (--org,--user,--app) are rejected, not silently ignored. - Variable values may use
--body/-bor stdin because Actions variables are not secret. - For multi-line variable values, pipe stdin to
npx -y gh-axi variable set <name>;--body/-bis for inline values only. - Projects (v2) are owner-scoped: pass
--owner <login>, or omit it to use the current repo owner and then@me. - Projects calls need the
projectorread:projectOAuth scope; if scope errors occur, ask the user to run thegh auth refresh -s ...command shown by gh-axi. - Use
gist listto list your GitHub Gists; filter by visibility with--publicor--secret, and add extra fields with--fields url,owner,created. Usegist view <id|url>to fetch a gist's metadata and file content; pass--filesfor names only,-f/--filename <name>for a single file, or--fullto disable truncation. - Use
gist edit <id|url>to update a gist's files or description: pipe content via stdin with--filename <name>to replace or add a file,--add <path>to add from disk,--remove <name>to remove, and--desc <text>to update the description.gist editnever opens $EDITOR. - Use
gist rename <id|url> <old> <new>to rename a file within a gist. - Use
gist createto create a gist. Visibility is required: pass--publicor--secret(omitting either, or passing both, is an error). Use positional paths (gist create a.py b.py) or repeatable--fileflags; do not mix the two. Pipe content with--filename <name>for stdin input. A secret gist is unlisted — anyone with the URL can read it. - Use
gist delete <id|url>to delete a gist (always confirmed non-interactively). Usegist clone <id|url>to clone a gist locally. - Use
apifor anything the dedicated commands do not cover, e.g.npx -y gh-axi api repos/{owner}/{repo}/topics.





