Skip to main content
skill CX Codex

github · imoonkey — Claude Code skill: features and installation

Search repositories, inspect project data and manage issues or subscriptions from an agent. Some write operations use different GitHub routes and have an authentication caveat.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add imoonkey/openweb --skill github -a claude-code
Open on GitHub

What github does

The skill gives an agent operations to search repositories, inspect repository and user details, read READMEs, issues, pull requests, and contributor lists. It can also create issues and comments, close or reopen issues, star or fork a repository, and manage watch subscriptions.

Write operations do not all use the same route. closeIssue, reopenIssue, watchRepo, unwatchRepo, and unstarRepo go through GitHub’s web interface. Several others, including createIssue, createComment, forkRepo, and starRepo, still call api.github.com and are affected by a cookie-session/Bearer-token mismatch. That can block those writes. Public-repository reads work without authentication, subject to a 60 requests per hour limit; cookie-authenticated reads allow 5000 requests per hour.

The persisted-query hashes used to close and reopen issues are hardcoded and can fall out of sync with GitHub web releases. If they break, they need to be captured again from a real request in DevTools. Check the route for the operation you plan to run before relying on a write.

What it helps with

  • find repositories by query and programming language
  • inspect repository details and read its README
  • list a repository’s issues and pull requests
  • close or reopen an issue
  • change repository stars or watch subscriptions

Example prompts for the agent

  • Find five TypeScript repositories matching react language:typescript.
  • Read the details and README for anthropics/claude-code.
  • List open issues in anthropics/claude-code, then close issue 1.

How to install github

1Skills CLI (Vercel)

npx skills add imoonkey/openweb --skill github -a claude-code

2Manually: put the files in place

~/.claude/skills/github/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/github/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about github

How do I install github in Claude Code?

Run npx skills add imoonkey/openweb --skill github -a claude-code. The skill file is at ~/.claude/skills/github/SKILL.md.

What does the github skill do?

It lets an agent search repositories and inspect their data, then perform operations on issues, comments, stars, forks, and watch subscriptions.

Which write operations have an authentication caveat?

starRepo, createIssue, createComment, deleteComment, forkRepo, and graphqlQuery still call api.github.com and are affected by the cookie-session/Bearer-token mismatch.

Source text

SKILL.md · MIT
# GitHub

## Overview
GitHub REST + GraphQL API — code hosting platform (developer tools archetype).

## Workflows

### Explore a repository
1. `searchRepos(q)` → pick result → `owner`, `repo` from `full_name`
2. `getRepo(owner, repo)` → description, stars, language
3. `getRepoReadme(owner, repo)` → base64-encoded README content
4. `listIssues(owner, repo)` → open issues
5. `listPullRequests(owner, repo)` → open PRs

### Investigate a user's work
1. `getUserProfile(username)` → bio, public_repos, followers
2. `searchRepos(q: "user:username")` → their repositories

### File an issue
1. `searchRepos(q)` → `owner`, `repo` from `full_name` (or use known repo)
2. `createIssue(owner, repo, title, body)` → `number`, `html_url`

### Manage issues
1. `listIssues(owner, repo)` → `issue_number`, `title`, `state`
2. `closeIssue(owner, repo, issue_number ← listIssues)` → `state: "closed"`
3. `reopenIssue(owner, repo, issue_number ← listIssues)` → `state: "open"`
4. `createComment(owner, repo, issue_number ← listIssues, body)` → `comment_id`, `html_url`
5. `deleteComment(owner, repo, comment_id ← createComment)` → 204

### Star / watch a repo
1. `searchRepos(q)` → `owner`, `repo` from `full_name`
2. `starRepo(owner, repo)` → 204
3. `unstarRepo(owner, repo)` → 204
4. `watchRepo(owner, repo)` → `subscribed`
5. `unwatchRepo(owner, repo)` → 204

## Operations

| Operation | Intent | Key Input | Key Output | Notes |
|-----------|--------|-----------|------------|-------|
| searchRepos | find repositories | q | total_count, items[].full_name, stargazers_count, language | entry point, paginated |
| getRepo | repository details | owner, repo | full_name, description, stargazers_count, forks_count, language | entry point |
| getUserProfile | user profile | username | login, name, bio, public_repos, followers, following | entry point |
| getRepoReadme | repository README | owner ← getRepo, repo ← getRepo | name, content (base64), encoding | |
| listIssues | repository issues | owner ← getRepo, repo ← getRepo | number, title, state, user.login, labels | paginated |
| listPullRequests | repository PRs | owner ← getRepo, repo ← getRepo | number, title, state, user.login, head.ref, base.ref | paginated |
| listContributors | repository contributors | owner ← getRepo, repo ← getRepo | login, contributions | paginated |
| createIssue | create an issue | owner ← getRepo, repo ← getRepo, title, body | number, html_url | write, CAUTION |
| closeIssue | close an issue | owner, repo, issue_number ← listIssues | data (GraphQL response) | write, CAUTION. Routes through github.com `/_graphql` |
| reopenIssue | reopen a closed issue | owner, repo, issue_number ← listIssues | data (GraphQL response) | write, CAUTION — reverse of closeIssue. Routes through github.com `/_graphql` |
| createComment | comment on issue/PR | owner, repo, issue_number ← listIssues, body | id, body, html_url | write, CAUTION |
| deleteComment | delete a comment | owner, repo, comment_id ← createComment | — (204) | write, CAUTION — reverse of createComment |
| forkRepo | fork a repository | owner ← getRepo, repo ← getRepo | full_name | write, CAUTION |
| starRepo | star a repository | owner ← getRepo, repo ← getRepo | — (204) | write, SAFE. (api.github.com — currently rejected by cookie_session, see DOC.md) |
| unstarRepo | unstar a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION — reverse of starRepo. Routes through github.com rails endpoint |
| watchRepo | watch a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION. Routes through github.com `/notifications/subscribe` |
| unwatchRepo | unwatch a repository | owner ← getRepo, repo ← getRepo | count (watcher count) | write, CAUTION — reverse of watchRepo. Routes through github.com `/notifications/subscribe` |
| graphqlQuery | execute GraphQL | query, variables | data | write (unrestricted mutations possible) |

## Quick Start

```bash
# Search repositories
openweb github exec searchRepos '{"q":"react language:typescript","per_page":5}'

# Get repository details
openweb github exec getRepo '{"owner":"anthropics","repo":"claude-code"}'

# List issues
openweb github exec listIssues '{"owner":"anthropics","repo":"claude-code","per_page":5}'

# Get user profile
openweb github exec getUserProfile '{"username":"anthropics"}'

# Close an issue
openweb github exec closeIssue '{"owner":"imoonkey","repo":"openweb-test","issue_number":1,"state":"closed"}'

# Comment on an issue
openweb github exec createComment '{"owner":"imoonkey","repo":"openweb-test","issue_number":1,"body":"Looks good!"}'

# Star / unstar a repo
openweb github exec starRepo '{"owner":"imoonkey","repo":"openweb-test"}'
openweb github exec unstarRepo '{"owner":"imoonkey","repo":"openweb-test"}'

# Watch / unwatch a repo
openweb github exec watchRepo '{"owner":"imoonkey","repo":"openweb-test"}'
openweb github exec unwatchRepo '{"owner":"imoonkey","repo":"openweb-test"}'
```

## Known Limitations

- **`closeIssue`, `reopenIssue`, `watchRepo`, `unwatchRepo`, `unstarRepo` route through github.com web UI** (transport: page) instead of api.github.com REST. They use the user's `_gh_sess` browser cookie + page-scraped `X-Fetch-Nonce` + per-form `authenticity_token`. Verify: 5/5 PASS (2026-04-19). The persisted-query hashes for close/reopen are hardcoded and **will drift** with GitHub web releases — re-capture from a real click via DevTools `_graphql` request when they break.
- **`starRepo`, `createIssue`, `createComment`, `deleteComment`, `forkRepo`, `graphqlQuery` still target api.github.com** and remain affected by the cookie-session/Bearer mismatch. Same web-rewrite pattern applies (see `adapters/github-web.ts`).
- Read ops on public repos work without auth (rate-limited to 60 req/h); authenticated read ops via cookies work too (5000 req/h).

© imoonkey · MIT · imoonkey/openweb

Similar skills

All skills for Git and GitHub →

github by other authors comes first.

github openclaw A skill that teaches your agent to drive GitHub through gh: browse pull requests, read CI logs, post comments and query the API. CX Codex +1 6,100installs github Dimillian Guides coding agents to use the gh CLI for inspecting pull requests, issues, and failed CI workflows. CX Codex +1 870installs github mitsuhiko A skill that teaches the agent to work with GitHub through the gh CLI: pull requests, CI runs, issues and raw API queries. CX Codex +1 504installs github kostja94 A skill for marketing on GitHub: repos, READMEs, GitHub Pages and Awesome lists used for SEO and AI citation. CX Codex +1 1,800installs github membrane Connects AI agents to GitHub repositories, issues, and pull requests via Membrane CLI. Manages workflows without manual token refresh. CX Codex +1 383installs triage Matt Pocock This skill moves issues and external PRs through triage states, verification, and agent briefs. It fits maintainers managing an issue queue. 990,453installs code-review Matt Pocock Reviews changes from a chosen reference point against repository standards and the originating spec. Use it for a branch, PR, or work in progress. 789,521installs implement Matt Pocock Implements work from a specification or tickets, following a test-driven flow and ending with review and a commit. Use it when a coding task needs a defined delivery routine. 774,700installs git-guardrails-claude-code Matt Pocock This skill adds a Claude Code hook that stops risky Git commands before they run. Use it when an agent must not push or discard working-tree changes. 499,069installs setup-pre-commit Matt Pocock This skill configures pre-commit checks for a JavaScript repository, running Prettier, type checking, and tests before each commit. 489,289installs scaffold-exercises Matt Pocock This skill builds course exercise directories with sections, problems, solutions, and explainers. Use it when starting a new course section or creating exercise stubs. 480,196installs

From the same set12

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor