
Web Research
- 159 installs
- 4.9k repo stars
- Updated August 5, 2026
- pollinations/pollinations
Pollinations web-research is an agent skill that runs parallel Pollinations search models from a bash CLI to answer research prompts.
About
Pollinations web-research is a small agent-invokable bash workflow for solo builders who want fast, cite-friendly answers without building a custom research stack. The script accepts a natural-language prompt, optionally reads API configuration from a nearby `.env`, and by default fans the same question to multiple Pollinations search models in parallel—starting with gemini-search and perplexity-fast. You can narrow to one model with `--model` or define your own ensemble via `--models`. That flexibility matters when you are validating an idea (what is this API?), comparing positioning statements for a landing page, or doing a quick competitive scan before scope lock. It is not a full browser automation suite; it is a deterministic CLI you can drop into agent sessions or local terminals. Because it uses `set -euo pipefail` and guarded dotenv loading, failures surface early instead of silently returning empty strings—useful when your agent chains research into a spec or brainstorm doc.
- Default parallel query across `gemini-search` and `perplexity-fast`
- `--model` for a single backend or `--models` CSV for a custom set
- Loads optional `.env` from the skill tree without overwriting existing env vars
- Documented CLI usage with quoted prompt argument
- Examples for single-model and custom model lists (`nomnom`, etc.)
Web Research by the numbers
- 159 all-time installs (skills.sh)
- +1 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #3,263 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pollinations/pollinations --skill web-researchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 159 |
|---|---|
| repo stars | ★ 4.9k |
| Security audit | 1 / 3 scanners passed |
| Last updated | August 5, 2026 |
| Repository | pollinations/pollinations ↗ |
What it does
Run parallel Pollinations search models from a shell script to answer research prompts without hand-copying between Gemini Search and Perplexity tabs.
Who is it for?
Best when you're scripting research during ideation, landing copy validation, or lightweight competitive checks from the terminal or agent shell.
Skip if: Deep archival research requiring curated citations, private corpus RAG, or workflows that cannot use network-backed Pollinations models.
When should I use this skill?
You have a research question in quotes and want Pollinations search models via `web-research.sh` with default or custom `--models`.
What you get
You get consolidated model output from one quoted prompt invocation, with configurable single- or multi-model runs loaded from your local `.env` when present.
- Terminal output from one or more search models for the given prompt
- Reproducible CLI invocation pattern for agents (--model / --models flags)
By the numbers
- Default model pair: gemini-search and perplexity-fast queried in parallel
Files
Web Research
Available Models
- gemini-search — Google Gemini with web search grounding (default)
- perplexity-fast — Perplexity AI, faster (default)
- perplexity — Perplexity AI
- nomnom — NomNom search model
By default, queries both gemini-search and perplexity-fast in parallel.
Requirements
curl
Authentication
Set an API key in an environment variable (preferred):
export POLLINATIONS_API_KEY="YOUR_KEY"Or create a local .env file at .claude/skills/web-research/.env:
POLLINATIONS_API_KEY="YOUR_KEY"If POLLINATIONS_API_KEY is not set, the script will prompt for a key (input hidden).
Quick usage
.claude/skills/web-research/scripts/web-research.sh "What is pollinations.ai?" Choose a model:
.claude/skills/web-research/scripts/web-research.sh --model perplexity-fast "Fact-check this claim with sources"Compare multiple models:
.claude/skills/web-research/scripts/web-research.sh --models gemini-search,perplexity-fast,nomnom "Compare answers"Run multi-model in parallel:
.claude/skills/web-research/scripts/web-research.sh --models gemini-search,perplexity-fast --parallel "Compare answers"Notes
- Uses
https://gen.pollinations.ai/v1/chat/completions - Sends
Authorization: Bearer <key>
#!/bin/bash
set -euo pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
ENV_FILE="$SCRIPT_DIR/../.env"
load_dotenv() {
local file="$1"
[ -f "$file" ] || return 0
while IFS= read -r line || [ -n "$line" ]; do
line="${line%$'\r'}"
case "$line" in
""|\#*)
continue
;;
esac
if [[ "$line" == export\ * ]]; then
line="${line#export }"
fi
if [[ "$line" != *=* ]]; then
continue
fi
local key="${line%%=*}"
local value="${line#*=}"
if [[ ! "$key" =~ ^[A-Za-z_][A-Za-z0-9_]*$ ]]; then
continue
fi
if [[ "$value" == '"'*'"' ]]; then
value="${value#\"}"
value="${value%\"}"
elif [[ "$value" == "'"*"'" ]]; then
value="${value#\'}"
value="${value%\'}"
fi
if [ -z "${!key:-}" ]; then
export "$key=$value"
fi
done < "$file"
}
DEFAULT_MODELS="gemini-search,perplexity-fast"
MODEL=""
MODELS_CSV="$DEFAULT_MODELS"
PARALLEL="true"
usage() {
cat >&2 <<'USAGE'
Usage:
web-research.sh [--model MODEL] [--models MODEL1,MODEL2,...] "your prompt"
Default: queries gemini-search and perplexity-fast in parallel.
Examples:
web-research.sh "What is pollinations.ai?"
web-research.sh --model perplexity "Use only one model"
web-research.sh --models gemini-search,nomnom "Custom model set"
USAGE
}
while [ "$#" -gt 0 ]; do
case "$1" in
--model)
shift
MODEL="${1:-}"
if [ -z "$MODEL" ]; then
usage
exit 2
fi
;;
--models)
shift
MODELS_CSV="${1:-}"
if [ -z "$MODELS_CSV" ]; then
usage
exit 2
fi
;;
-h|--help)
usage
exit 0
;;
--)
shift
break
;;
-*)
echo "Unknown option: $1" >&2
usage
exit 2
;;
*)
break
;;
esac
shift
done
PROMPT="$*"
if [ -z "$PROMPT" ]; then
usage
exit 2
fi
if [ -f "$ENV_FILE" ]; then
echo "Using local .env: $ENV_FILE" >&2
else
echo "No local .env found at: $ENV_FILE" >&2
fi
load_dotenv "$ENV_FILE"
API_KEY="${POLLINATIONS_API_KEY:-}"
if [ -z "$API_KEY" ]; then
printf "POLLINATIONS_API_KEY not set. Enter API key: " >&2
read -r -s API_KEY
echo >&2
fi
if [ -z "$API_KEY" ]; then
echo "Missing API key." >&2
exit 2
fi
export GEMINI_SEARCH_PROMPT="$PROMPT"
make_body() {
local model="$1"
export GEMINI_SEARCH_MODEL="$model"
python3 - <<'PY'
import json
import os
import sys
prompt = os.environ.get("GEMINI_SEARCH_PROMPT")
model = os.environ.get("GEMINI_SEARCH_MODEL")
if not prompt:
sys.exit(2)
if not model:
sys.exit(2)
print(json.dumps({
"model": model,
"messages": [{"role": "user", "content": prompt}],
}))
PY
}
print_response() {
python3 -c '
import json, sys
try:
d = json.load(sys.stdin)
c = d.get("choices", [])
if c:
msg = c[0].get("message", {}).get("content", "")
if msg:
print(msg)
else:
print(json.dumps(d, indent=2))
else:
print(json.dumps(d, indent=2))
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
'
}
run_one() {
local model="$1"
local body
body=$(make_body "$model")
curl -sS "https://gen.pollinations.ai/v1/chat/completions" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "$body" | print_response
}
if [ -n "$MODELS_CSV" ]; then
IFS=',' read -r -a MODELS <<< "$MODELS_CSV"
if [ "$PARALLEL" = "true" ]; then
TMP_DIR=$(mktemp -d)
trap 'rm -rf "$TMP_DIR"' EXIT
i=0
for m in "${MODELS[@]}"; do
out="$TMP_DIR/$i.out"
( printf "=== %s ===\n" "$m" >"$out" && run_one "$m" >>"$out" ) &
i=$((i + 1))
done
wait
i=0
for _ in "${MODELS[@]}"; do
cat "$TMP_DIR/$i.out"
echo
i=$((i + 1))
done
else
for m in "${MODELS[@]}"; do
printf "=== %s ===\n" "$m"
run_one "$m"
echo
done
fi
else
run_one "$MODEL"
fi
Related skills
How it compares
A CLI research fan-out skill—not a journey-wide planning methodology or in-repo code review checker.
FAQ
Who is Pollinations web-research for?
Developers and agent users who want a repeatable shell script to query Pollinations search models instead of one-off HTTP experiments.
When should I use Pollinations web-research?
In Idea for market and competitor discovery, in Validate when checking claims for a landing page or scope doc, and in Grow when refreshing positioning or support FAQs from the open web.
Is Pollinations web-research safe to install?
Check the Security Audits panel on this page, keep API keys only in `.env`, and avoid piping sensitive customer data into third-party search models without reviewing your compliance needs.