research
12 / 100 · High risk
Only if you trust the author. Some of what it can do is expected: a research skill usually looks things up on the internet.
By lev-os/agents (GitHub) · research · 27 stars · scanned at commit 201a805
Use when current external facts, source-backed comparisons, investigations, or recent community evidence are needed.
Works with any agent that supports SKILL.md skills.
What this skill can do
Can call paid AI services billed to you
The author does not mention this.
Found in 23 places.
- skills/research/apps/research-cli/src/backends/perplexity.rs, line 48
.post("https://api.perplexity.ai/chat/completions") - skills/research/backends/grok-web-twitter-realtime/BACKEND.md, line 23
curl -s https://api.x.ai/v1/responses \ - skills/research/backends/grok-web-twitter-realtime/scripts/grok-search.sh, line 28
curl -s https://api.x.ai/v1/chat/completions \
Show 17 more
- skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 276
- xAI Grok 4.1 API support (`--model grok-4.1` / alias `grok`): defaults to `https://api.x.ai/v1`, uses `XAI_API_KEY`, maps search to `web_search`, and includes - skills/research/backends/oracle-ceo-gpt5pro/references/releases.md, line 378
- Add xAI Grok 4.1 API support (`--model grok-4.1` / alias `grok`), defaults to `https://api.x.ai/v1`, uses `XAI_API_KEY`, and maps search to `web_search` with - skills/research/references/last30days/METHOD.md, line 2065
- Legacy: Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery (fallback if no SCRAPECREATORS_API_KEY) - skills/research/references/last30days/METHOD.md, line 2066
- Sends search queries to X/Twitter via optional user-provided `AUTH_TOKEN`/`CT0` env vars, explicit browser-cookie opt-in (`FROM_BROWSER` or setup consent), xA - skills/research/references/last30days/METHOD.md, line 2071
- Optionally sends search queries to Brave Search API, Parallel AI API, Perplexity API (`api.perplexity.ai`), or OpenRouter API for web search / synthesis - skills/research/references/last30days/scripts/evaluate_search_quality.py, line 48
GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}" - skills/research/references/last30days/scripts/lib/perplexity.py, line 19
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions" - skills/research/references/last30days/scripts/lib/perplexity.py, line 20
PERPLEXITY_AGENT_URL = "https://api.perplexity.ai/v1/agent" - skills/research/references/last30days/scripts/lib/perplexity.py, line 21
PERPLEXITY_SEARCH_URL = "https://api.perplexity.ai/search" - skills/research/references/last30days/scripts/lib/prescriptions.py, line 82
"api.x.ai), or add XQUIK_API_KEY to your .env (get key at xquik.com)" - skills/research/references/last30days/scripts/lib/providers.py, line 18
GEMINI_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}" - skills/research/references/last30days/scripts/lib/providers.py, line 19
OPENAI_RESPONSES_URL = "https://api.openai.com/v1/responses" - skills/research/references/last30days/scripts/lib/providers.py, line 20
XAI_RESPONSES_URL = "https://api.x.ai/v1/responses" - skills/research/references/last30days/scripts/lib/providers.py, line 21
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions" - skills/research/references/last30days/scripts/lib/transcribe.py, line 36
"openai": "https://api.openai.com/v1/audio/transcriptions", - skills/research/references/last30days/scripts/lib/xai_x.py, line 28
XAI_RESPONSES_URL = "https://api.x.ai/v1/responses" - skills/research/references/legacy-last30days-backend/scripts/lib/models.py, line 9
OPENAI_MODELS_URL = "https://api.openai.com/v1/models"
and 3 more places
Downloads and installs other software
The author does not mention this.
Found in 95 places.
- skills/research/apps/research-hub/INTEGRATION.md, line 152
npm install -g @valyu/cli - skills/research/apps/research-hub/INTEGRATION.md, line 153
npm install -g firecrawl-cli - skills/research/apps/research-hub/INTEGRATION.md, line 154
brew install brave-cli # or equivalent
Show 17 more
- skills/research/backends/firecrawl-scrape-extract/rules/install.md, line 12
npm install -g firecrawl-cli - skills/research/backends/firecrawl-scrape-extract/rules/install.md, line 76
2. Try: `npx firecrawl-cli --version` - skills/research/backends/firecrawl-scrape-extract/rules/install.md, line 77
3. Or reinstall: `npm install -g firecrawl-cli` - skills/research/backends/firecrawl-scrape-extract/rules/install.md, line 85
sudo npm install -g firecrawl-cli - skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 78
npm install -g @steipete/oracle - skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 81
brew install steipete/tap/oracle - skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 84
npx -y @steipete/oracle … - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 187
- Docs: README now explicitly warns against `pnpx @steipete/oracle` (pnpx cache breaks sqlite bindings); use `npx -y @steipete/oracle` instead. Thanks Xuanwo fo - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 271
- Publish metadata now declares Node >=20 (engines/devEngines) and drops the implicit bun runtime so `npx @steipete/oracle` no longer fails with EBADDEVENGINES - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 288
- MCP: `npx @steipete/oracle oracle-mcp` now routes directly to the MCP server (even when npx defaults to the CLI binary) and keeps stdout JSON-only for Cursor/ - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 289
- Added the missing `@anthropic-ai/tokenizer` runtime dependency so `npx @steipete/oracle oracle-mcp` starts cleanly. - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 383
"command": "npx", - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 393
"oracle": { "type": "stdio", "command": "npx", "args": ["-y", "@steipete/oracle", "oracle-mcp"] } - skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 469
- Positional prompt shorthand: `oracle "prompt here"` (and `npx -y @steipete/oracle "..."`) now maps the positional argument to `--prompt` automatically. - skills/research/backends/oracle-ceo-gpt5pro/references/README.md, line 18
Install globally: `npm install -g @steipete/oracle` - skills/research/backends/oracle-ceo-gpt5pro/references/README.md, line 19
Homebrew: `brew install steipete/tap/oracle` - skills/research/backends/oracle-ceo-gpt5pro/references/README.md, line 21
Requires Node 22+. Or use `npx -y @steipete/oracle …` (or pnpx).
and 75 more places
Changes files outside its own folder
The author does not mention this.
Found in 21 places.
- skills/research/apps/research-hub/TECHNICAL_MINIMALIST_COMPLETE.md, line 146
cp ~/.agents/skills/lev-research/apps/research-hub/src/components/Dashboard.tsx.backup ~/.agents/skills/lev-research/apps/research-hub/src/components/Dashboard. - skills/research/backends/firecrawl-scrape-extract/rules/install.md, line 88
mkdir ~/.npm-global - skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 203
mkdir -p ~/.codex/skills
Show 17 more
- skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 204
cp -R skills/oracle ~/.codex/skills/oracle - skills/research/backends/oracle-ceo-gpt5pro/references/README.md, line 70
- `mkdir -p ~/.codex/skills` - skills/research/backends/oracle-ceo-gpt5pro/references/README.md, line 71
- `cp -R skills/oracle ~/.codex/skills/oracle` - skills/research/backends/valyu-recursive-confidence/IMPLEMENTATION.md, line 88
echo "VALYU_API_KEY=your-key" > ~/.valyu/.env - skills/research/backends/valyu-recursive-confidence/IMPLEMENTATION.md, line 252
2. Configure API key: `echo "VALYU_API_KEY=key" > ~/.valyu/.env` - skills/research/backends/valyu-recursive-confidence/cli/README.md, line 13
echo "VALYU_API_KEY=your-key" > ~/.valyu/.env - skills/research/backends/valyu-recursive-confidence/cli/README.md, line 396
echo "VALYU_API_KEY=your-key" > ~/.valyu/.env - skills/research/backends/valyu-recursive-confidence/cli/install.sh, line 34
mkdir -p ~/.valyu - skills/research/references/last30days/METHOD.md, line 438
**If the user picks Skip for now:** write `SETUP_COMPLETE=true` to `~/.config/last30days/.env` (append-only; run `mkdir -p ~/.config/last30days && touch ~/.conf - skills/research/references/last30days/METHOD.md, line 572
4. If it doesn't exist: `mkdir -p ~/.config/last30days && touch ~/.config/last30days/.env` - skills/research/references/last30days/scripts/lib/prescriptions.py, line 229
"add the install directory (default ~/.local/bin) to the PATH the " - skills/research/references/last30days/scripts/lib/render.py, line 31
Per-harness skill install dirs (`~/.claude/skills`, `~/.codex/skills`, `~/.agents/skills`, - skills/research/references/last30days/scripts/test_device_auth.py, line 122
print(f"\nTo use it: echo 'SCRAPECREATORS_API_KEY={api_key}' >> ~/.config/last30days/.env") - skills/research/references/legacy-last30days-backend/BACKEND.md, line 66
mkdir -p ~/.config/last30days - skills/research/references/legacy-last30days-backend/BACKEND.md, line 67
cat > ~/.config/last30days/.env << 'ENVEOF' - skills/research/references/legacy-last30days-backend/README.md, line 16
mkdir -p ~/.config/last30days - skills/research/references/legacy-last30days-backend/README.md, line 17
cat > ~/.config/last30days/.env << 'EOF'
and 1 more places
Sends data to these websites: registry.npmjs.org, api.tavily.com, api.exa.ai
This is disclosed by the author in the skill's SKILL.md or README. Expected for a research skill.
Found in 210 places.
- skills/research/backends/brave-web-quick/cli/package-lock.json, line 11
"axios": "^1.6.5", - skills/research/backends/brave-web-quick/cli/package-lock.json, line 496
"node_modules/axios": { - skills/research/backends/brave-web-quick/cli/package-lock.json, line 498
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz",
Show 17 more
- skills/research/backends/brave-web-quick/cli/package.json, line 14
"axios": "^1.6.5", - skills/research/backends/brave-web-quick/cli/src/brave.ts, line 4
import axios, { AxiosInstance } from 'axios'; - skills/research/backends/brave-web-quick/cli/src/brave.ts, line 26
return axios.create({ - skills/research/backends/brave-web-quick/content.js, line 37
const response = await fetch(url, { - skills/research/backends/brave-web-quick/search.js, line 38
const response = await fetch(url, { - skills/research/backends/brave-web-quick/search.js, line 112
const response = await fetch(url, { - skills/research/backends/deep-multi-query-synthesis/scripts/research.mjs, line 89
const resp = await fetch("https://api.tavily.com/search", { - skills/research/backends/exa-neural-linkedin-github/scripts/code.sh, line 31
curl -s -X POST 'https://api.exa.ai/search' \ - skills/research/backends/exa-neural-linkedin-github/scripts/content.sh, line 36
curl -s -X POST 'https://api.exa.ai/contents' \ - skills/research/backends/exa-neural-linkedin-github/scripts/search.sh, line 82
curl -s -X POST 'https://api.exa.ai/search' \ - skills/research/backends/firecrawl-scrape-extract/cli/package-lock.json, line 11
"axios": "^1.6.5", - skills/research/backends/firecrawl-scrape-extract/cli/package-lock.json, line 496
"node_modules/axios": { - skills/research/backends/firecrawl-scrape-extract/cli/package-lock.json, line 498
"resolved": "https://registry.npmjs.org/axios/-/axios-1.13.4.tgz", - skills/research/backends/firecrawl-scrape-extract/cli/package.json, line 15
"axios": "^1.6.5", - skills/research/backends/firecrawl-scrape-extract/cli/src/firecrawl.ts, line 4
import axios, { AxiosInstance } from 'axios'; - skills/research/backends/firecrawl-scrape-extract/cli/src/firecrawl.ts, line 26
return axios.create({ - skills/research/backends/firecrawl-scrape-extract/cli/src/firecrawl.ts, line 95
const client = axios.create({
and 190 more places
Runs commands on your computer
The author does not mention this.
Found in 50 places.
- skills/research/backends/firecrawl-scrape-extract/BACKEND.md, line 325
cat urls.txt | xargs -P 10 -I {} sh -c 'firecrawl scrape "{}" -o ".firecrawl/$(echo {} | md5).md"' - skills/research/backends/valyu-recursive-confidence/BACKEND.md, line 580
import { exec } from 'child_process'; - skills/research/backends/valyu-recursive-confidence/IMPLEMENTATION.md, line 216
import { exec } from 'child_process';
Show 17 more
- skills/research/references/last30days/scripts/box_chrome_login.py, line 200
subprocess.Popen(recipe["command"], env=launch_env) - skills/research/references/last30days/scripts/evaluate_search_quality.py, line 347
result = subprocess.run( - skills/research/references/last30days/scripts/evaluate_search_quality.py, line 372
subprocess.run( - skills/research/references/last30days/scripts/evaluate_search_quality.py, line 390
subprocess.run( - skills/research/references/last30days/scripts/lib/agentcookie.py, line 163
result = subprocess.run( - skills/research/references/last30days/scripts/lib/agentcookie.py, line 169
except subprocess.TimeoutExpired: - skills/research/references/last30days/scripts/lib/backends.py, line 274
``subprocess.run([name, "--version"])``, and the whole-doctor-path test - skills/research/references/last30days/scripts/lib/backends.py, line 275
patches ``subprocess.run`` to raise. - skills/research/references/last30days/scripts/lib/chrome_cookies.py, line 71
result = subprocess.run( - skills/research/references/last30days/scripts/lib/chrome_cookies.py, line 88
except subprocess.TimeoutExpired: - skills/research/references/last30days/scripts/lib/chrome_cookies.py, line 127
result = subprocess.run( - skills/research/references/last30days/scripts/lib/chrome_cookies.py, line 160
except subprocess.TimeoutExpired: - skills/research/references/last30days/scripts/lib/corpus.py, line 161
except (OSError, subprocess.SubprocessError) as exc: - skills/research/references/last30days/scripts/lib/corpus.py, line 291
completed = subprocess.run( - skills/research/references/last30days/scripts/lib/env.py, line 396
result = subprocess.run( - skills/research/references/last30days/scripts/lib/env.py, line 403
except (subprocess.TimeoutExpired, OSError): - skills/research/references/last30days/scripts/lib/env.py, line 444
result = subprocess.run(
and 30 more places
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this.
Found in 10 places.
- skills/research/backends/oracle-ceo-gpt5pro/BACKEND.md, line 37
4. For API mode: `source ~/.env.local && oracle --engine api -p "..."` - skills/research/references/last30days/scripts/lib/env.py, line 433
source like Keychain, so an explicit .env or process-env value still wins. - skills/research/references/last30days/scripts/lib/grok_x.py, line 322
SCRAPECREATORS_API_KEY to ``$HOME/.config/last30days/.env``, and ``~/.ssh``
Show 7 more
- skills/research/references/last30days/scripts/lib/grok_x.py, line 323
and ``~/.aws`` sit alongside it. An empty cwd is not a boundary for a - skills/research/references/last30days/scripts/lib/x_envelope.py, line 113
"~/.aws", - skills/research/references/last30days/scripts/lib/x_envelope.py, line 114
"~/.ssh", - skills/research/references/last30days/scripts/lib/x_envelope.py, line 115
"~/.netrc", - skills/research/references/last30days/scripts/lib/youtube_yt.py, line 311
SSH alias (configured in ~/.ssh/config). On macOS hosts with Homebrew, - skills/research/references/legacy-last30days-backend/BACKEND.md, line 67
cat > ~/.config/last30days/.env << 'ENVEOF' - skills/research/references/legacy-last30days-backend/README.md, line 17
cat > ~/.config/last30days/.env << 'EOF'
Reads your browser cookies or saved passwords
The author does not mention this.
Found in 12 places.
- skills/research/backends/oracle-ceo-gpt5pro/references/CHANGELOG.md, line 326
- Browser cookie sync on Windows now copies the profile DB into a named temp directory with the expected `Cookies` filename so `chrome-cookies-secure` can read - skills/research/backends/oracle-ceo-gpt5pro/references/releases.md, line 442
- Browser cookie sync on Windows now copies the profile DB into a named temp directory with the expected `Cookies` filename so `chrome-cookies-secure` can read - skills/research/references/last30days/scripts/lib/chrome_cookies.py, line 65
Calls `security find-generic-password` which may trigger a system dialog
Show 9 more
- skills/research/references/last30days/scripts/lib/cookie_extract.py, line 153
"""Find the first directory that contains cookies.sqlite.""" - skills/research/references/last30days/scripts/lib/cookie_extract.py, line 156
if child.is_dir() and (child / "cookies.sqlite").is_file(): - skills/research/references/last30days/scripts/lib/cookie_extract.py, line 168
Firefox locks cookies.sqlite while running, so we copy first. - skills/research/references/last30days/scripts/lib/cookie_extract.py, line 235
result = _query_cookies_db(default_profile / "cookies.sqlite", domain, cookie_names) - skills/research/references/last30days/scripts/lib/cookie_extract.py, line 246
db = child / "cookies.sqlite" - skills/research/references/last30days/scripts/lib/cookie_extract.py, line 263
Finds the default Firefox profile, copies cookies.sqlite to a temp file - skills/research/references/last30days/scripts/lib/safari_cookies.py, line 4
Parses ~/Library/Cookies/Cookies.binarycookies (unencrypted binary format) - skills/research/references/last30days/scripts/setup-keychain.sh, line 77
if security find-generic-password -a "$USER" -s "${PREFIX}${key}" >/dev/null 2>&1; then - skills/research/references/last30days/scripts/setup-keychain.sh, line 104
if security find-generic-password -a "$USER" -s "${PREFIX}${key}" >/dev/null 2>&1; then
Safer alternatives
Low-risk skills in the same category (research) that look related. Check that one does what you need.
- 100 Low riskzendesk-customer-researchlightspeedwp/.github · 20 stars
- 90 Low riskhunter-researchJakeschincariol/hunter-skill · 82 stars
- 85 Low risk21-understand-research-150diegosouzapw/awesome-omni-skill · 66 stars
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'research' ] || [ -L ~/.agents/skills/'research' ]; then echo 'A skill folder named research already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/lev-os/agents' "$d" && git -C "$d" checkout --quiet '201a80515e1dc58addfda3cd9978907de2c944a6' -- 'skills/research' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/research' ~/.agents/skills/'research' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'research' ~/.claude/skills/'research' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for lev-os/agents shows the score of its lowest-scoring skill.
[](https://zalavijaysinh.github.io/skilltrust/repos/lev-os/agents/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-07 | 201a805 | 12 |