{"id":"ed80d5e5-10a9-462b-8b66-d4bd0df3bdf1","shortId":"qRLWs9","kind":"skill","title":"sn-search-code","tagline":"搜索开发者资源：GitHub 仓库/代码/Issue、Stack Overflow 问答、Hacker News 讨论、HuggingFace 模型/数据集/Space。用于查找代码示例、开源项目、技术问答、预训练模型。","description":"# sn-search-code - 开发者搜索\n\n搜索 GitHub、Stack Overflow、Hacker News、HuggingFace 四个开发者核心平台。所有脚本无需 API key 即可使用，但 GitHub `--type code` 搜索是例外（见下方说明）。\n\n## 依赖\n\n运行脚本前先安装本 skill 的 Python 依赖：\n\n```bash\npython3 -m pip install -r skills/sn-search-code/requirements.txt\n```\n\n如果项目使用 `uv` 环境：\n\n```bash\nuv pip install -r skills/sn-search-code/requirements.txt\n```\n\n## 可用脚本\n\n| 脚本 | 平台 | 用途 | API key |\n|------|------|------|---------|\n| `github_search.py` | GitHub | 仓库、代码、Issue 搜索 | `code` 类型**必须**；其他类型可选（提高限额） |\n| `stackoverflow_search.py` | Stack Overflow | 技术问答搜索 | 无需 |\n| `hackernews_search.py` | Hacker News | 技术新闻和讨论 | 无需 |\n| `huggingface_search.py` | HuggingFace | 模型、数据集、Space 搜索 | 可选 `HF_TOKEN`（提高限额） |\n\n## 参数说明\n\n### github_search.py\n\n```bash\npython3 scripts/github_search.py <query> [选项]\n```\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `query` | 搜索关键词（必填） | — |\n| `--limit`, `-n` | 返回结果数量 | 10 |\n| `--type`, `-t` | 搜索类型：`repositories`, `code`, `issues`, `repo`, `issue` | repositories |\n| `--token` | GitHub Token（也可通过 `GITHUB_TOKEN` 环境变量设置） | — |\n\n> **注意：`--type code` 必须提供 token。**  \n> GitHub API 对代码搜索接口强制要求认证，未提供 token 会返回 401。  \n> `repositories` 和 `issues` 类型无需 token，但有 token 可提高速率限制（未认证 10 次/分钟 → 认证 30 次/分钟）。\n\n```bash\npython3 scripts/github_search.py \"machine learning framework\" --type repositories --limit 5\npython3 scripts/github_search.py \"import asyncio\" --type code --token ghp_xxx --limit 5\n# 或通过环境变量：\nGITHUB_TOKEN=ghp_xxx python3 scripts/github_search.py \"import asyncio\" --type code --limit 5\n```\n\n### stackoverflow_search.py\n\n```bash\npython3 scripts/stackoverflow_search.py <query> [选项]\n```\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `query` | 搜索关键词（必填） | — |\n| `--limit`, `-n` | 返回结果数量 | 10 |\n| `--sort` | 排序方式：`relevance`, `votes`, `creation`, `activity` | relevance |\n| `--tagged` | 按标签过滤，多个用分号分隔（如 `python;asyncio`） | — |\n| `--api-key` | Stack Exchange API key（也可通过 `SO_API_KEY` 环境变量设置，可选，提高限额） | — |\n\n```bash\npython3 scripts/stackoverflow_search.py \"python async await\" --limit 5\npython3 scripts/stackoverflow_search.py \"rust lifetime\" --sort votes --tagged rust --limit 10\n```\n\n### huggingface_search.py\n\n```bash\npython3 scripts/huggingface_search.py <query> [选项]\n```\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `query` | 搜索关键词（必填） | — |\n| `--limit`, `-n` | 返回结果数量 | 10 |\n| `--type`, `-t` | 搜索类型：`models`, `datasets`, `spaces`（及别名 `model`, `dataset`, `space`） | models |\n| `--token` | HuggingFace Token（也可通过 `HF_TOKEN` 环境变量设置，可选，提高限额） | — |\n\n```bash\npython3 scripts/huggingface_search.py \"bert\" --type models --limit 5\npython3 scripts/huggingface_search.py \"text classification\" --type datasets --limit 5\npython3 scripts/huggingface_search.py \"stable diffusion\" --type spaces --limit 5\n```\n\n### hackernews_search.py\n\n```bash\npython3 scripts/hackernews_search.py <query> [选项]\n```\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| `query` | 搜索关键词（必填） | — |\n| `--limit`, `-n` | 返回结果数量 | 10 |\n| `--sort` | 排序方式：`relevance`, `date` | relevance |\n| `--tags` | HN 标签过滤：`story`, `comment`, `ask_hn`, `show_hn` | — |\n\n```bash\npython3 scripts/hackernews_search.py \"LLM agents\" --limit 10\npython3 scripts/hackernews_search.py \"GPT-5\" --sort date --tags story --limit 5\n```\n\n## 输出格式\n\n所有脚本输出标准 JSON：\n```json\n{\n  \"success\": true,\n  \"query\": \"...\",\n  \"provider\": \"github|stackoverflow|hackernews\",\n  \"items\": [\n    {\"title\": \"...\", \"url\": \"...\", \"snippet\": \"...\", ...}\n  ],\n  \"error\": null\n}\n```","tags":["search","code","sensenova","skills","opensensenova","agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation"],"capabilities":["skill","source-opensensenova","skill-sn-search-code","topic-agent","topic-agent-skills","topic-ai-agents","topic-ai-assistant","topic-data-analysis","topic-document-processing","topic-office-automation","topic-presentation-slides"],"categories":["SenseNova-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-search-code","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add OpenSenseNova/SenseNova-Skills","source_repo":"https://github.com/OpenSenseNova/SenseNova-Skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1627 github stars · SKILL.md body (3,398 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:53:06.199Z","embedding":null,"createdAt":"2026-05-15T06:53:11.277Z","updatedAt":"2026-05-18T18:53:06.199Z","lastSeenAt":"2026-05-18T18:53:06.199Z","tsv":"'-5':358 '/issue':9 '/space':19 '10':121,159,214,259,274,333,354 '30':163 '401':149 '5':175,186,199,249,302,310,318,364 'activ':220 'agent':352 'api':38,73,144,229,233,237 'api-key':228 'ask':344 'async':246 'asyncio':179,195,227 'await':247 'bash':53,63,108,166,201,242,261,295,320,348 'bert':298 'classif':306 'code':4,27,44,81,126,140,181,197 'comment':343 'creation':219 'dataset':279,283,308 'date':337,360 'diffus':314 'error':380 'exchang':232 'framework':171 'ghp':183,190 'github':6,30,42,76,132,135,143,188,373 'github_search.py':75,107 'gpt':357 'hacker':13,33,92 'hackernew':375 'hackernews_search.py':91,319 'hf':103,290 'hn':340,345,347 'huggingfac':16,35,97,287 'huggingface_search.py':96,260 'import':178,194 'instal':57,66 'issu':79,127,129,152 'item':376 'json':367,368 'key':39,74,230,234,238 'learn':170 'lifetim':253 'limit':118,174,185,198,211,248,258,271,301,309,317,330,353,363 'llm':351 'm':55 'machin':169 'model':278,282,285,300 'n':119,212,272,331 'news':14,34,93 'null':381 'overflow':11,32,88 'pip':56,65 'provid':372 'python':51,226,245 'python3':54,109,167,176,192,202,243,250,262,296,303,311,321,349,355 'queri':115,208,268,327,371 'r':58,67 'relev':217,221,336,338 'repo':128 'repositori':125,130,150,173 'rust':252,257 'scripts/github_search.py':110,168,177,193 'scripts/hackernews_search.py':322,350,356 'scripts/huggingface_search.py':263,297,304,312 'scripts/stackoverflow_search.py':203,244,251 'search':3,26 'show':346 'skill':49 'skill-sn-search-code' 'skills/sn-search-code/requirements.txt':59,68 'sn':2,25 'sn-search-cod':1,24 'snippet':379 'sort':215,254,334,359 'source-opensensenova' 'space':100,280,284,316 'stabl':313 'stack':10,31,87,231 'stackoverflow':374 'stackoverflow_search.py':86,200 'stori':342,362 'success':369 'tag':222,256,339,361 'text':305 'titl':377 'token':104,131,133,136,142,147,154,156,182,189,286,288,291 'topic-agent' 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-assistant' 'topic-data-analysis' 'topic-document-processing' 'topic-office-automation' 'topic-presentation-slides' 'true':370 'type':43,122,139,172,180,196,275,299,307,315 'url':378 'uv':61,64 'vote':218,255 'xxx':184,191 '也可通过':134,235,289 '仓库':7,77 '代码':8,78 '会返回':148 '但':41 '但有':155 '依赖':47,52 '其他类型可选':84 '分钟':161,165 '即可使用':40 '参数':112,205,265,324 '参数说明':106 '及别名':281 '可提高速率限制':157 '可用脚本':69 '可选':102,240,293 '和':151 '四个开发者核心平台':36 '多个用分号分隔':224 '如':225 '如果项目使用':60 '对代码搜索接口强制要求认证':145 '平台':71 '开发者搜索':28 '开源项目':21 '必填':117,210,270,329 '必须':83 '必须提供':141 '或通过环境变量':187 '所有脚本无需':37 '所有脚本输出标准':366 '技术新闻和讨论':94 '技术问答':22 '技术问答搜索':89 '按标签过滤':223 '排序方式':216,335 '提高限额':85,105,241,294 '搜索':29,80,101 '搜索关键词':116,209,269,328 '搜索开发者资源':5 '搜索是例外':45 '搜索类型':124,277 '数据集':18,99 '无需':90,95 '未提供':146 '未认证':158 '标签过滤':341 '模型':17,98 '次':160,164 '注意':138 '环境':62 '环境变量设置':137,239,292 '用于查找代码示例':20 '用途':72 '的':50 '类型':82 '类型无需':153 '脚本':70 '见下方说明':46 '认证':162 '讨论':15 '说明':113,206,266,325 '输出格式':365 '运行脚本前先安装本':48 '返回结果数量':120,213,273,332 '选项':111,204,264,323 '问答':12 '预训练模型':23 '默认值':114,207,267,326","prices":[{"id":"d585bb44-9010-4f40-9ac1-8cd0676aa8b9","listingId":"ed80d5e5-10a9-462b-8b66-d4bd0df3bdf1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"OpenSenseNova","category":"SenseNova-Skills","install_from":"skills.sh"},"createdAt":"2026-05-15T06:53:11.277Z"}],"sources":[{"listingId":"ed80d5e5-10a9-462b-8b66-d4bd0df3bdf1","source":"github","sourceId":"OpenSenseNova/SenseNova-Skills/sn-search-code","sourceUrl":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-search-code","isPrimary":false,"firstSeenAt":"2026-05-15T06:53:11.277Z","lastSeenAt":"2026-05-18T18:53:06.199Z"}],"details":{"listingId":"ed80d5e5-10a9-462b-8b66-d4bd0df3bdf1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"OpenSenseNova","slug":"sn-search-code","github":{"repo":"OpenSenseNova/SenseNova-Skills","stars":1627,"topics":["agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation","presentation-slides"],"license":"mit","html_url":"https://github.com/OpenSenseNova/SenseNova-Skills","pushed_at":"2026-05-15T04:43:37Z","description":"Modular SenseNova skills for building AI-powered office assistants and productivity workflows","skill_md_sha":"a516ae20e4fffab58d8778902b5696f24c62c5df","skill_md_path":"skills/sn-search-code/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-search-code"},"layout":"multi","source":"github","category":"SenseNova-Skills","frontmatter":{"name":"sn-search-code","description":"搜索开发者资源：GitHub 仓库/代码/Issue、Stack Overflow 问答、Hacker News 讨论、HuggingFace 模型/数据集/Space。用于查找代码示例、开源项目、技术问答、预训练模型。"},"skills_sh_url":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-search-code"},"updatedAt":"2026-05-18T18:53:06.199Z"}}