/private-github-search
Full-text search across all of the user's GitHub repos (including private ones) using a local mirror and ripgrep. Use for "where did I put X", "which repo has X", or any search spanning the user's repos - gh search code / the REST API cannot reliably search private repos.
Claude Code
$ npx -y skills add ykdojo/claude-code-tips --skill private-github-search --agent claude-code
Codex
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a codex -y
Cursor
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a cursor -y
Gemini CLI
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a gemini-cli -y
GitHub Copilot
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a github-copilot -y
OpenCode
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a opencode -y
Windsurf
$ npx skills add ykdojo/claude-code-tips --skill private-github-search -a windsurf -y
SKILL.md
private-github-search.SKILL.mdname: private-github-search
description: Full-text search across all of the user's GitHub repos (including private ones) using a local mirror and ripgrep. Use for "where did I put X", "which repo has X", or any search spanning the user's repos - gh search code / the REST API cannot reliably search private repos.
Private GitHub search
GitHub's modern code search (the one that indexes private repos) is web-only; `gh search code` uses the legacy engine and often returns nothing for private repos. Instead, search a local mirror of all the user's repos - it covers the same content as GitHub's index (default branch, non-fork) and a full search takes milliseconds.
Searching
Find the bundled sync script (works for plugin installs and manual symlinks):
find ~/.claude ~/.codex -name "private-github-search-sync.sh" 2>/dev/null | sort -V | tail -1
Always refresh first - it exits instantly if the mirror was synced within the last hour, and takes ~15s otherwise (`--force` syncs regardless of age):
bash <script-path>
rg -il 'pattern' ~/repo-mirror/repos # which files
rg -in 'pattern' ~/repo-mirror/repos | head # matching lines
First-time setup
If `~/repo-mirror/owners.txt` doesn't exist: ask the user which GitHub accounts to mirror (don't guess - they may manage several), write them one per line to `~/repo-mirror/owners.txt`, then run the sync script in the background (initial clone takes a few minutes; needs `gh` auth with access to those accounts).
Caveats
- Only the default-branch tip is mirrored - for history or other branches, use `git log -S` in a full clone or GitHub web search.
- The mirror may contain private data: keep it out of synced folders and never commit or publish its contents.
Read more
name: private-github-search description: Full-text search across all of the user's GitHub repos (including private ones) using a local mirror and ripgrep. Use for "where did I put X", "which repo has X", or any search spanning the user's repos - gh search code / the REST API cannot reliably search private repos.
Private GitHub search
GitHub's modern code search (the one that indexes private repos) is web-only; `gh search code` uses the legacy engine and often returns nothing for private repos. Instead, search a local mirror of all the user's repos - it covers the same content as GitHub's index (default branch, non-fork) and a full search takes milliseconds.
Searching
Find the bundled sync script (works for plugin installs and manual symlinks):
find ~/.claude ~/.codex -name "private-github-search-sync.sh" 2>/dev/null | sort -V | tail -1
Always refresh first - it exits instantly if the mirror was synced within the last hour, and takes ~15s otherwise (`--force` syncs regardless of age):
bash <script-path> rg -il 'pattern' ~/repo-mirror/repos # which files rg -in 'pattern' ~/repo-mirror/repos | head # matching lines
First-time setup
If `~/repo-mirror/owners.txt` doesn't exist: ask the user which GitHub accounts to mirror (don't guess - they may manage several), write them one per line to `~/repo-mirror/owners.txt`, then run the sync script in the background (initial clone takes a few minutes; needs `gh` auth with access to those accounts).
Caveats
- Only the default-branch tip is mirrored - for history or other branches, use `git log -S` in a full clone or GitHub web search.
- The mirror may contain private data: keep it out of synced folders and never commit or publish its contents.
Here are my tips for getting the most out of Claude Code, including a custom status line script and Claude Code running itself in a container. Also includes the dx plugin: skills for everyday dev workflows.
Other skills on dx.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about private-github-search.
- Which coding agents can use private-github-search?
- private-github-search installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

