web-search
This skill should be used when users need to search the web for information, find current content, look up news articles, search for images, or find videos. It uses DuckDuckGo's search API to return results in clean, formatted output (text, markdown, or JSON). Use for research, fact-checking, finding recent information, or gathering web resources.
git clone --depth 1 https://github.com/opensquilla/opensquilla /tmp/web-search && cp -r /tmp/web-search/src/opensquilla/skills/bundled/web-search ~/.claude/skills/web-searchSKILL.md
# Web Search
## Overview
Search the web using DuckDuckGo's API to find information across web pages, news articles, images, and videos. Returns results in multiple formats (text, markdown, JSON) with filtering options for time range, region, and safe search.
## When to Use This Skill
Use this skill when users request:
- Web searches for information or resources
- Finding current or recent information online
- Looking up news articles about specific topics
- Searching for images by description or topic
- Finding videos on specific subjects
- Research requiring current web data
- Fact-checking or verification using web sources
- Gathering URLs and resources on a topic
## Prerequisites
OpenSquilla declares the required `duckduckgo-search` Python package as a runtime dependency.
For source checkouts, run the normal project dependency sync before invoking this bundled skill.
The library provides a simple Python interface to DuckDuckGo's search API without requiring API keys or authentication.
## Core Capabilities
### 1. Basic Web Search
Search for web pages and information:
```bash
python {baseDir}/scripts/search.py "<query>"
```
**Example:**
```bash
python {baseDir}/scripts/search.py "python asyncio tutorial"
```
Returns the top 10 web results with titles, URLs, and descriptions in a clean text format.
### 2. Limiting Results
Control the number of results returned:
```bash
python {baseDir}/scripts/search.py "<query>" --max-results <N>
```
**Example:**
```bash
python {baseDir}/scripts/search.py "machine learning frameworks" --max-results 20
```
Useful for:
- Getting more comprehensive results (increase limit)
- Quick lookups with fewer results (decrease limit)
- Balancing detail vs. processing time
### 3. Time Range Filtering
Filter results by recency:
```bash
python {baseDir}/scripts/search.py "<query>" --time-range <d|w|m|y>
```
**Time range options:**
- `d` - Past day
- `w` - Past week
- `m` - Past month
- `y` - Past year
**Example:**
```bash
python {baseDir}/scripts/search.py "artificial intelligence news" --time-range w
```
Great for:
- Finding recent news or updates
- Filtering out outdated content
- Tracking recent developments
### 4. News Search
Search specifically for news articles:
```bash
python {baseDir}/scripts/search.py "<query>" --type news
```
**Example:**
```bash
python {baseDir}/scripts/search.py "climate change" --type news --time-range w --max-results 15
```
News results include:
- Article title
- Source publication
- Publication date
- URL
- Article summary/description
### 5. Image Search
Search for images:
```bash
python {baseDir}/scripts/search.py "<query>" --type images
```
**Example:**
```bash
python {baseDir}/scripts/search.py "sunset over mountains" --type images --max-results 20
```
**Image filtering options:**
Size filters:
```bash
python {baseDir}/scripts/search.py "landscape photos" --type images --image-size Large
```
Options: `Small`, `Medium`, `Large`, `Wallpaper`
Color filters:
```bash
python {baseDir}/scripts/search.py "abstract art" --type images --image-color Blue
```
Options: `color`, `Monochrome`, `Red`, `Orange`, `Yellow`, `Green`, `Blue`, `Purple`, `Pink`, `Brown`, `Black`, `Gray`, `Teal`, `White`
Type filters:
```bash
python {baseDir}/scripts/search.py "icons" --type images --image-type transparent
```
Options: `photo`, `clipart`, `gif`, `transparent`, `line`
Layout filters:
```bash
python {baseDir}/scripts/search.py "wallpapers" --type images --image-layout Wide
```
Options: `Square`, `Tall`, `Wide`
Image results include:
- Image title
- Image URL (direct link to image)
- Thumbnail URL
- Source website
- Dimensions (width x height)
### 6. Video Search
Search for videos:
```bash
python {baseDir}/scripts/search.py "<query>" --type videos
```
**Example:**
```bash
python {baseDir}/scripts/search.py "python tutorial" --type videos --max-results 15
```
**Video filtering options:**
Duration filters:
```bash
python {baseDir}/scripts/search.py "cooking recipes" --type videos --video-duration short
```
Options: `short`, `medium`, `long`
Resolution filters:
```bash
python {baseDir}/scripts/search.py "documentary" --type videos --video-resolution high
```
Options: `high`, `standard`
Video results include:
- Video title
- Publisher/channel
- Duration
- Publication date
- Video URL
- Description
### 7. Region-Specific Search
Search with region-specific results:
```bash
python {baseDir}/scripts/search.py "<query>" --region <region-code>
```
**Common region codes:**
- `us-en` - United States (English)
- `uk-en` - United Kingdom (English)
- `ca-en` - Canada (English)
- `au-en` - Australia (English)
- `de-de` - Germany (German)
- `fr-fr` - France (French)
- `wt-wt` - Worldwide (default)
**Example:**
```bash
python {baseDir}/scripts/search.py "local news" --region us-en --type news
```
### 8. Safe Search Control
Control safe search filtering:
```bash
python {baseDir}/scripts/search.py "<query>" --safe-search <on|moderate|off>
```
**Options:**
- `on` - Strict filtering
- `moderate` - Balanced filtering (default)
- `off` - No filtering
**Example:**
```bash
python {baseDir}/scripts/search.py "medical information" --safe-search on
```
### 9. Output Formats
Choose how results are formatted:
**Text format (default):**
```bash
python {baseDir}/scripts/search.py "quantum computing"
```
Clean, readable plain text with numbered results.
**Markdown format:**
```bash
python {baseDir}/scripts/search.py "quantum computing" --format markdown
```
Formatted markdown with headers, bold text, and links.
**JSON format:**
```bash
python {baseDir}/scripts/search.py "quantum computing" --format json
```
Structured JSON data for programmatic processing.
### 10. Saving Results to File
Save search results to a file:
```bash
python {baseDir}/scripts/search.py "<query>" --output <file-path>
```
**Example:**
```bash
python {baseDir}/scripts/search.py "artificial intelligence" --output ai_results.txt
python {baseDir}/scripts/searSubmit audio or video for multilingual dubbing, poll status, and download dubbed audio. Use when the user asks for dubbing, 多语言配音, 视频翻译配音, 译制片, or wants a source clip dubbed into another language.
Generate a structured short-video shooting script from a topic. Emits a strict, machine-parseable shot list (3 shots by default) with image prompt + video prompt + voiceover + on-screen text per shot. Trigger when the user asks for a video script, 分镜, 短视频文案, AI视频, 短剧脚本, or wants visual prompts ready for image/video generation.
Use when the user asks to schedule recurring tasks, one-off reminders, timers, or cron-style jobs through the OpenSquilla cron tool.
Multi-round research with explicit methodology, evidence tracking, and citation-tagged synthesis. Trigger on 'deep dive', 'research report', 'literature review', 'investigate X across sources', 'multi-round investigation'. Distinct from the `summarize` skill, which is a single-pass condensation; this skill maintains a state file across iterations, tracks coverage, and produces a long-form report with per-claim citations. Three execution stages: plan (scope into sub-questions), iterate (record evidence per round), compile (synthesize report). The skill itself does not fetch the web — it tells the host agent which fetches to perform via OpenSquilla's existing web tools, and records what comes back.
Read, edit, or create Microsoft Word `.docx` files. Trigger this skill whenever the user mentions a Word document, .docx file, contract, report, brief, memo, or asks to extract text, modify an existing doc, generate one from a brief, or audit tracked changes. Three execution paths: text-and-structure extraction, in-place edit-by-run (preserves styles), and create-from-scratch with python-docx. Falls back to OOXML unzip-and-patch for layout work python-docx cannot reach.
Capture the current git diff (staged, working-tree, or staged file list) as text. Direct shell call for workflows that need repository diffs without an LLM agent loop.
GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.
Query the per-turn DecisionEntry log for skill co-occurrence patterns, meta-skill usage stats, and the router fixture corpus. Returns a JSON summary suitable for downstream LLM consumption. Used by meta-skill-creator's harvest step but also useful standalone for 'which skills did I use most this week?'