Github search skill
Максимально полный поиск по GitHub — найти готовые проекты, библиотеки, инструменты, MCP-серверы и подсмотреть, как люди реализуют функцию/тул в коде. Используй ВСЕГДА, когда пользователь пишет в таком духе (даже если слова «гитхаб/гит» нет): «найди на гите мсп такие?», «поищи на гите», «на гитхаб что есть похожего?», «как люди пишут такую функцию/тул», «может это уже сделали другие люди?», «есть готовое под X?», «чем/на чём сделать Y?», «альтернативы Z», «найди скил про V», «поищи скил на W», «есть готовый скил под Q?». Даёт широкую карту темы со скрытыми алмазами, а не первую ссылку. НЕ для: поиска по ЛОКАЛЬНОМУ репозиторию (это git log / grep / ripgrep); clone/install конкретного уже известного репо.From its SKILL.md
npx -y skills add DmitryPlai/github-search-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 7 commands, including `gh auth status` and 6 more.
- fetches URLsInstructs the agent to fetch 1 URL, including https://clawhub.atomicbot.ai/api/skills?search=ТЕМА&limit=10.
SKILL.md
17.0 KB, ~4.9k tokens by cl100k_base, as published. Nobody here has run it
Поиск по GitHub: максимальный охват + скрытые алмазы
Главные принципы
- Тема ≠ фраза. Длинная фраза («pdf to markdown preserve tables») почти
всегда даёт пусто/мусор. Тему раскрывают
--topic, отдельные ключевые слова, имена тяжеловесов, поиск по импортам. - Один угол тему не раскрывает — комбинируй веер. Обычная тема → 6-10 углов
вручную (раздел «Веер углов»); большая/важная → скрипт
assets/gh_hunt.sh(детали в «Технических заметках»). - Три движка дают РАЗНОЕ —
gh search,gh api search/*(REST),gh api graphql. Используй несколько, не один. - Показывай ВСЕ релевантные, а не топ-3. Скрытые алмазы (мало звёзд, но
свежие/функциональнее лидера) — часто и есть лучший ответ. Не отбраковывай по
одним звёздам (пример:
whatsapp-mcp-extended— 19⭐, но 26 тулзов против лидера на 5800⭐ — смотри свежесть и фичи). - Если показал не всё — прямо пиши: «есть ещё N штук, показать? среди них тоже могут быть стоящие». Пусть пользователь решает сам.
- Сырое число ≠ релевантное.
repositoryCount(напр. 305) включает мусор (боты, форки, обёртки). Фильтруй до настоящих и показывай всех настоящих. - Читай README/бенчмарки лучших — не верь маркетингу. Ищи цифры и сравнения.
- Мало нашёл — копай ещё угол (
in:name, импорт, commits, smithery.yaml), прежде чем сказать «это всё». - Если
ghругается на авторизацию →gh auth status.
Рабочий процесс (делай по шагам)
-
Разложи задачу на 2-4 ключевых слова + 2-4 вероятных
topic+ 3-8 имён известных проектов в нише (из своих знаний). -
Прогон веера (минимум 6 углов, см. ниже). Для большой темы — скрипт
assets/gh_hunt.sh. -
Дедуп и ранжируй по звёздам; выкинь форки-пустышки и оффтоп.
-
Замерь нишу (
repositoryCount) — понять, океан это или узкая свежая тема (в узкой теме лидеры будут молодые, с малыми звёздами — это норма). -
Прочитай README/бенчмарки топ-3 кандидатов (
gh api .../readme+ grep по таблицам). -
Отдай пользователю: таблица со всеми релевантными по категориям + прямая рекомендация «что брать под его случай». Если что-то не показал — допиши «есть ещё N, показать?» (см. «Полнота выдачи»). Формат таблицы:
| ⭐ | Проект | Чем хорош / для чего | |---|---|---| | 5819 | lharries/whatsapp-mcp | Лидер, личный аккаунт (QR), Go+Python | | 65 | jlucaso1/whatsapp-mcp-ts | Один стек — чистый TypeScript (Baileys) | | 19 | FelixIsaac/whatsapp-mcp-extended | Мелкий, но 26 тулзов + активная поддержка |Группируй по смыслу (напр. «через личный аккаунт» / «через Cloud API»), если в нише есть развилка способа работы.
Веер углов (комбинируй, не выбирай один)
# --- РЕПОЗИТОРИИ ---
# 1. По темам (ГЛАВНЫЙ способ найти проект под задачу — точнее фраз)
gh search repos --topic web-scraping --topic anti-bot --sort=stars --limit 15 \
--json fullName,stargazersCount,description -q '.[]|"\(.stargazersCount)⭐ \(.fullName) — \(.description)"'
# 2. По именам тяжеловесов (знаешь нишу — проверь лидеров поимённо)
for n in trafilatura mdream webclaw; do gh search repos "$n" --sort=stars --limit 1 --json fullName,stargazersCount,description -q '.[]|"\(.stargazersCount)⭐ \(.fullName)"'; done
# 3. order=asc — СКРЫТЫЕ АЛМАЗЫ с нижнего края (sort-desc их хоронит!)
gh api -X GET search/repositories -f q='html to markdown llm stars:>50' -f sort=stars -f order=asc -f per_page=8 \
-q '.items[]|"\(.stargazers_count)⭐ \(.full_name) — \(.description)"'
# 4. sort=forks — кем РЕАЛЬНО пользуются (форки честнее звёзд)
gh api -X GET search/repositories -f q='topic:markdown html' -f sort=forks -f per_page=6 -q '.items[]|"\(.stargazers_count)⭐ \(.full_name)"'
# 5. Зрелые проверенные (created:<2021) и свежая волна (created:>2025)
gh api -X GET search/repositories -f q='pdf table extraction created:<2021 stars:>1000' -f sort=stars -f per_page=6 -q '.items[]|"\(.stargazers_count)⭐ \(.full_name)"'
# 6. Экосистема автора/конторы (нашёл хороший проект → смотри ВСЮ контору)
gh search repos --owner datalab-to --sort=stars --limit 8 --json fullName,stargazersCount,description -q '.[]|"\(.stargazersCount)⭐ \(.fullName)"'
# 7. GraphQL — ДРУГОЙ движок, находит то, чего gh search не даёт (термины КОРОТКИЕ!)
gh api graphql -f query='{ search(query:"undetected browser stars:>300", type:REPOSITORY, first:8){ nodes{ ... on Repository{ nameWithOwner stargazerCount description } } } }' -q '.data.search.nodes[]|"\(.stargazerCount)⭐ \(.nameWithOwner)"'
# --- КОД (как люди делают / кто что использует) ---
# 8. По ИМПОРТУ библиотеки — найти потребителей И БЕНЧМАРКИ (они тянут всех конкурентов!)
gh search code 'import trafilatura language:python' --limit 6 --json repository,path -q '.[]|"\(.repository.nameWithOwner) :: \(.path)"'
# 9. По manifest-файлам MCP-серверов
gh search code 'gemini filename:smithery.yaml' --limit 6 --json repository,path -q '.[]|"\(.repository.nameWithOwner) :: \(.path)"'
# 10. По тому, КАК инструмент ставят (CI / докер)
gh search code 'playwright headless filename:Dockerfile' --limit 6 --json repository,path -q '.[]|"\(.repository.nameWithOwner) :: \(.path)"'
# --- РАЗВЕДКА ---
# 11. commits — найти НОВОРОЖДЁННЫЙ проект (ещё без звёзд) по "Initial commit"
gh search commits 'gemini web mcp' --limit 5 --json repository,commit -q '.[]|"\(.repository.fullName) — \(.commit.message|split("\n")[0])"'
# 12. PRs — увидеть, КАК прикрутили фичу (готовый рецепт)
gh search prs 'add table extraction support' --limit 5 --json repository,title -q '.[]|"\(.repository.nameWithOwner): \(.title)"'
# 13. Решённые issue — закрытый вопрос «как обойти X» = готовое решение в комментах
gh api -X GET search/issues -f q='bypass cloudflare playwright is:issue is:closed' -f per_page=5 -q '.items[]|"\(.title) — \(.html_url)"'
# 14. Эксперты/конторы темы → потом смотри их репозитории
gh api -X GET search/users -f q='browser automation stealth' -f per_page=5 -q '.items[]|"\(.login) (\(.type))"'
# 15. search/topics — какие ТЕГИ вообще существуют (мета-поиск, чтобы потом точно фильтровать)
gh api -X GET search/topics -f q='markdown' -H "Accept: application/vnd.github.mercy-preview+json" -q '.items[]|"#\(.name) — \(.short_description)"'
# --- ОЦЕНКА И ЧТЕНИЕ ---
# 16. repositoryCount — размер ниши (океан или узкая тема?)
gh api graphql -f query='{ search(query:"headless browser llm", type:REPOSITORY){ repositoryCount } }' -q '.data.search.repositoryCount'
# 17. Прочитать README/бенчмарк кандидата (цифры, а не маркетинг)
gh api repos/OWNER/REPO/readme -H "Accept: application/vnd.github.raw" | grep -iE 'f1|score|fast|benchmark|\|' | head -20
Поиск кода и реализаций («как люди пишут такую функцию/тул»)
Отдельный кейс — не найти проект, а подсмотреть реализацию конкретной вещи
(ретрай при rate-limit, разбор вебхука, сборка MCP-тула). Когда задача про это —
читай references/code-search.md: там приёмы поиска по коду (по сигнатуре,
вызову, импорту, сниппеты textMatches) и свои грабли.
Поиск готовых СКИЛОВ (не проектов, а Claude-скилов под задачу)
Ищешь не проект, а готовый скил — есть живые способы без ручного чёса. В мире ~160k скилов, так что сперва проверь реестр, прежде чем счесть тему «пустой».
- GitHub Code Search (живой, по всему гиту):
gh api search/code -f q='ТЕМА filename:SKILL.md' -f per_page=10 -q '.items[]|"\(.repository.nameWithOwner) :: \(.path)"'. Многословные капризны (см. «Тупики») — бери 1-2 точных слова. - ClawHub REST API (живой, со звёздами/скачиваниями, 36k):
curl -s 'https://clawhub.atomicbot.ai/api/skills?search=ТЕМА&limit=10' | jq '.items[]|{slug,summary,stars:.stats.stars,downloads:.stats.downloads}'. Параметры — в OpenAPI:clawhub.atomicbot.ai/docs-json. - Реестр
majiayu000/claude-skill-registry(~160k, индекс с метаданными): для массового/оффлайн скачай шардыregistry-shards/00..ff.jsonизclaude-skill-registry-coreи грепайjq. ПлюсskCLI и веб-поиск.
Полезные фильтры (квалификаторы в строке q)
stars:>N · forks:>N · pushed:>2025-01-01 (активность) · created:<2021
(зрелость) / created:>2025 (свежак) · language:rust (скорость) ·
license:mit · archived:false · topics:>=4 (документированные) ·
stars:500..5000 (диапазон) · size:<2000 (компактные) ·
good-first-issues:>0 (живые) · in:name / in:description / in:topics.
Через флаги gh search repos: --match name,description, --language,
--stars, --topic (несколько раз), --sort {stars|forks|updated|help-wanted-issues},
--order {asc|desc}.
Тупики и ошибки (проверено — не трать на это попытки)
| Не работает | Деталь |
|---|---|
| Длинная фраза (4+ слов) везде | gh search И GraphQL → пусто. Дроби на термины. |
--match readme + фраза | Сваливается в awesome-листы, не в тулзы. |
OR в gh search repos | Пусто. НО в gh api search/repositories OR работает! |
in:path, symbol: в gh search code | Не поддерживаются → пусто. |
Спецсимволы в code-запросе (full_page=True) | Ломают запрос → пусто. Бери голый идентификатор. |
gh search code многословный | Скатывается в .md/доки. По коду — только точные идентификаторы (import X, имя функции). |
--repo owner/name на старом имени | Падает, если проект переименовали (ищи текущее имя). |
sort=updated без stars:>N | Мусорные форки с 0⭐. Всегда ставь порог. |
Имена секретов/кук (__Secure-1PSID) | GitHub их не индексирует в code search. |
stars:>100000 на узкой теме | Пусто. Порог под размер ниши (см. repositoryCount). |
| Эмодзи / кириллица в запросе | Мусор и i18n-файлы. Запросы — по-английски. |
Один общий токен (parse, markdown) | Максимальный шум. |
--owner + свободная фраза | Часто пусто. --owner бери без фразы или с --match. |
Технические заметки
- Рейт-лимит — важно: Search API = 30 запросов/мин. Ручной веер подряд ловит
403 rate limitуже на ~10-м поиске, аsleepв харнесе заблокирован (паузу руками не вставить). Поэтому больше ~15 поисков подряд руками не гони — переходи наgh_hunt.sh(он сам паузитsleep 2.2). Если ручной веер оборвался на 403 — это НЕ «нашёл всё»: добери скриптом, не отдавай обрыв как полный результат. - JSON-поля разные: repos →
fullName/stargazersCount; REST →full_name/stargazers_count; commits → дата вcommit.committer.date. Всегда--json/-q. - macOS grep: BSD grep, нет
-P. Используйgrep -E. - Большой заход: скрипт
assets/gh_hunt.sh— правь массивы под тему (GH_HUNT_TITLE='...' bash gh_hunt.sh), он сам паузит и дедуплицирует. Читайh_results.json— единственный артефакт (секцииrepos/code/recon/niches/techniques/run), фильтруй черезjq. Проверьrun.complete:false= были сбои (run.fail/rate_limited/auth_fail), часть запросов не отработала → улов может быть неполным, при rate-limit перезапусти позже. Путь печатается в начале — бери по нему (поls -tв temp можно схватить чужой прогон). Лог каждого вызова — JSONL в~/.claude/logs/github-search/(хранится 7 дней / до 1 ГБ). Гоняй в фоне: ~2-4 мин, просто ЖДИ уведомления, не поллингуй.
Развивай скил сам
Имеешь право править этот файл по ходу дела, кратко и без воды:
- Нашёл новый рабочий приём и повторил его 2+ раза с результатом → впиши в
нужный блок (веер / фильтры /
references/code-search.md). - Приём не сработал 2+ раза подряд → перенеси в «Тупики» или удали.
- Что-то в GitHub изменилось и старый рецепт сломался → поправь или убери.
What ships with it: 7 files
2124.6 KB alongside SKILL.md, 1 of them executable
assets/
- banner.png1908.8 KB
- gh_hunt.shruns12.0 KB
- social-preview.jpg195.6 KB
references/
- code-search.md3.9 KB
- .gitignore41 B
- LICENSE1.0 KB
- README.md3.2 KB