Skip to main content

crw-search

Search the web with fastCRW and get titles, URLs, and descriptions. Use when you have a question or topic but not a URL — "search for", "find pages about", "look up", "what is", "who is", "latest news on", "find docs for". Own search backend: self-hosted, no API key, no per-query cost, high recall via meta-search aggregation. Step 1 of the crw workflow ladder.

소스 정보

저장소
fastcrw/crw
최근 소스 활동
2026년 9월 24일 10:37
감지된 SKILL.md 언어
영어
스타
1,076
포크
87

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
crw-search
description
Search the web with fastCRW and get titles, URLs, and descriptions. Use when you have a question or topic but not a URL — "search for", "find pages about", "look up", "what is", "who is", "latest news on", "find docs for". Own search backend: self-hosted, no API key, no per-query cost, high recall via meta-search aggregation. Step 1 of the crw workflow ladder.
license
AGPL-3.0
metadata
{"author":"us","version":"0.3.0","homepage":"https://fastcrw.com","repository":"https://github.com/fastcrw/crw"}
allowed-tools
Bash(crw:*) Bash(curl:*) Read
# crw-search — web search via crw's own search backend ## When to use - You have a **question or topic**, not a URL. Get candidate URLs first, then scrape the one that looks right. - Step 1 in the [crw ladder](../crw/SKILL.md): most searches should end at step 2 ([crw-scrape](../crw-scrape/SKILL.md)) — pick the best result URL and scrape it for full content. - **Token-heavy context?** Pipe through a subprocess filter instead of dumping raw JSON. See [crw-dynamic-search](../crw-dynamic-search/SKILL.md). - The search backend is self-hosted and free — no API key, no per-query billing, no usage cap. Queries never leave your infrastructure in embedded/local mode. ## Quick start **CLI** (binary on PATH): ```bash crw search "rust async http client" # text output crw search "site:docs.rs tokio" --json --fields title,url,snippet --limit 5 crw search "CVE-2024-1234" --category news --time-range week crw search "climate policy 2025" --json -o .crw/results.json crw search "rust crates" --language en --limit 20 ``` **MCP** (inside an agent harness): ``` crw_search(query="rust async http client", limit=5, lang="en") crw_search(query="latest CVE nginx", tbs="qdr:w", categories="news") crw_search(query="openai pricing", scrapeOptions={"formats": ["markdown"]}) ``` **REST** (drop-in for Firecrawl SDKs — just swap the base URL): ```bash curl -X POST "$CRW_API_URL/v1/search" -H "Authorization: Bearer $CRW_API_KEY" \ -H 'Content-Type: application/json' \ -d '{"query":"rust async http","limit":5,"lang":"en"}' ``` ## Options | Need | CLI flag | MCP / REST field | |------|----------|------------------| | Result count | `-l/--limit N` (default 10) | `limit` (default 5) | | JSON output | `--json` or `--format json` | — (always JSON) | | Field projection | `--fields title,url,snippet` | — | | Output to file | `-o FILE` | — | | Filter by category | `--category news\|images\|videos\|general\|…` | `categories` | | Language | `--language en` | `lang` | | Time filter | `--time-range day\|week\|month\|year` | `tbs: qdr:h\|qdr:d\|qdr:w\|qdr:m\|qdr:y` | | Safe search | `--safesearch 0\|1\|2` | — | | Custom search backend | `--searxng-url URL` / `$CRW_SEARXNG_URL` | — | | Group by source | — | `sources: ["web","news","images"]` | | Scrape results inline | — (use crw scrape separately) | `scrapeOptions: {formats:["markdown"]}` | **`--fields` available values:** `title`, `url`, `description`, `snippet`, `position`, `score`, `category`. `snippet` is an alias for `description`. ## A note on result scores The search backend is a **meta-search aggregator** — it merges results from multiple engines (Google, Bing, DuckDuckGo, etc.) and the `score` field reflects internal engine weighting, not a universal relevance measure. Do not rely on `score` for ranking or filtering. Use **`position`** (1-based rank) or **result order** instead — position 1 is the most relevant result surfaced. ## Tips - **No results / 403?** The search backend needs JSON output enabled in its config. Run `crw setup --local` to spin up a pre-configured sidecar automatically. Public instances usually block JSON with 403/429. - **`--fields` saves context.** `--json --fields title,url,snippet --limit 5` is one call; piping to `jq` is two. Prefer the flag. - **Inline scraping via MCP.** Pass `scrapeOptions: {formats: ["markdown"]}` to get page content alongside search results in one round-trip. There is no `--scrape` CLI flag — use the MCP/REST path for this. - **Time-sensitive queries.** Use `--time-range week` (CLI) or `tbs: "qdr:w"` (MCP/REST) for news, CVEs, releases, or any freshness-sensitive topic. - **After search, scrape the winner.** `crw search "…"` returns candidates; `crw scrape "<url>"` gets the full content. Don't try to read content from search snippets alone. - **Write large result sets to `.crw/`.** Never stream a 20-result JSON blob to stdout into context. Use `-o .crw/results.json` then `jq`/`grep`. ## See also - [crw-scrape](../crw-scrape/SKILL.md) — scrape the URL you found - [crw-dynamic-search](../crw-dynamic-search/SKILL.md) — filter output in a subprocess to save context (use this on token-heavy tasks) - [crw](../crw/SKILL.md) — hub skill with the full workflow ladder
GitHub에서 보기