---
name: sn-search-code-4ec94c50222c
description: 用于查找代码示例、开源项目、GitHub Issue、技术问答、开发者讨论、HuggingFace 模型/数据集/Space。
---

# sn-search-code - 开发者搜索

## 凭证配置

API key、token 与 cookie 统一建议写在仓库根目录 `.env`（参考 `.env.example`），并由 runtime 或用户在执行前加载为同名环境变量。脚本仍只从环境变量或显式 CLI 参数读取凭证；不要把真实密钥写入 skill payload、报告、日志或提交。

搜索 GitHub、Stack Overflow、Hacker News、HuggingFace 四个开发者核心平台。所有脚本无需 API 密钥 即可使用，但 GitHub `--type code` 搜索是例外（见下方说明）。

## 可用脚本

| 脚本 | 平台 | 用途 | API 密钥 |
|------|------|------|---------|
| `github_search.py` | GitHub | 仓库、代码、Issue 搜索 | `code` 类型**必须**；其他类型可选（提高限额） |
| `stackoverflow_search.py` | Stack Overflow | 技术问答搜索 | 无需 |
| `hackernews_search.py` | Hacker News | 技术新闻和讨论 | 无需 |
| `huggingface_search.py` | HuggingFace | 模型、数据集、Space 搜索 | 可选 `HF_TOKEN`（提高限额） |

## 依赖

首次运行或脚本提示缺库时，使用本技能的依赖清单安装到当前 Python 环境：

```bash
python3 -m pip install -r requirements.txt
```

不要在脚本内部自动安装依赖。若安装失败、网络不可用或包不可用，停止使用对应脚本并改用网页搜索，说明缺少依赖。

## 参数说明

### github_search.py

```bash
python3 scripts/github_search.py <query> [选项]
```

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `query` | 搜索关键词（必填） | — |
| `--limit`, `-n` | 返回结果数量 | 10 |
| `--type`, `-t` | 搜索类型：`repositories`, `code`, `issues`, `repo`, `issue` | repositories |
| `--token` | GitHub Token（也可通过 `GITHUB_TOKEN` 环境变量设置） | — |

> **注意：`--type code` 必须提供 token。**  
> GitHub API 对代码搜索接口强制要求认证，未提供 token 会返回 401。  
> `repositories` 和 `issues` 类型无需 token，但有 token 可提高速率限制（未认证 10 次/分钟 → 认证 30 次/分钟）。

```bash
python3 scripts/github_search.py "machine learning framework" --type repositories --limit 5
python3 scripts/github_search.py "import asyncio" --type code --token ghp_xxx --limit 5
# 或通过环境变量：
GITHUB_TOKEN=ghp_xxx python3 scripts/github_search.py "import asyncio" --type code --limit 5
```

### stackoverflow_search.py

```bash
python3 scripts/stackoverflow_search.py <query> [选项]
```

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `query` | 搜索关键词（必填） | — |
| `--limit`, `-n` | 返回结果数量 | 10 |
| `--sort` | 排序方式：`relevance`, `votes`, `creation`, `activity` | relevance |
| `--tagged` | 按标签过滤，多个用分号分隔（如 `python;asyncio`） | — |
| `--api-key` | Stack Exchange API 密钥（也可通过 `SO_API_KEY` 环境变量设置，可选，提高限额） | — |

```bash
python3 scripts/stackoverflow_search.py "python async await" --limit 5
python3 scripts/stackoverflow_search.py "rust lifetime" --sort votes --tagged rust --limit 10
```

### huggingface_search.py

```bash
python3 scripts/huggingface_search.py <query> [选项]
```

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `query` | 搜索关键词（必填） | — |
| `--limit`, `-n` | 返回结果数量 | 10 |
| `--type`, `-t` | 搜索类型：`models`, `datasets`, `spaces`（及别名 `model`, `dataset`, `space`） | models |
| `--token` | HuggingFace Token（也可通过 `HF_TOKEN` 环境变量设置，可选，提高限额） | — |

```bash
python3 scripts/huggingface_search.py "bert" --type models --limit 5
python3 scripts/huggingface_search.py "text classification" --type datasets --limit 5
python3 scripts/huggingface_search.py "stable diffusion" --type spaces --limit 5
```

### hackernews_search.py

```bash
python3 scripts/hackernews_search.py <query> [选项]
```

| 参数 | 说明 | 默认值 |
|------|------|--------|
| `query` | 搜索关键词（必填） | — |
| `--limit`, `-n` | 返回结果数量 | 10 |
| `--sort` | 排序方式：`relevance`, `date` | relevance |
| `--tags` | HN 标签过滤：`story`, `comment`, `ask_hn`, `show_hn` | — |

```bash
python3 scripts/hackernews_search.py "LLM agents" --limit 10
python3 scripts/hackernews_search.py "GPT-5" --sort date --tags story --limit 5
```

## 输出格式

所有脚本输出标准 JSON：
```json
{
  "success": true,
  "query": "...",
  "provider": "github|stackoverflow|hackernews",
  "items": [
    {"title": "...", "url": "...", "snippet": "...", ...}
  ],
  "error": null
}
```


---
Source attribution: OpenSenseNova
Original project: https://github.com/OpenSenseNova/SenseNova-Skills
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Dave AI.

## Upstream license notice

MIT License

Copyright (c) 2026 Gabriel Moreira

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Dave AI resource metadata

Creator / publisher: OpenSenseNova
Original project: https://github.com/OpenSenseNova/SenseNova-Skills
Attribution basis: Upstream repository explicitly recorded in package mirror path

Fields of work: Data & Analytics, Development & Engineering, Product Management
Roles: Backend Developer, Data Analyst, Frontend Developer, ML / AI Engineer, Product Manager
Specialties: API
Tools: GitHub, Hugging Face
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: 78e37237ad2d49de910201e50a3ba906857c2426088f917238f9bfddf0a75b85
