last30days
41 / 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 tensology/decisionsai (GitHub) · research · 17 stars · scanned at commit 54239d8
Research what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 40 places.
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 73
CLAUDE_CACHE_LATEST=$(find "$HOME/.claude/plugins/cache/last30days-skill/last30days" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -1) - plugins/community-skills-pack/skills/last30days/SKILL.md, line 250
grep -q "SETUP_COMPLETE=true" ~/.config/last30days/.env 2>/dev/null && echo "1" || echo "FIRST_RUN_DETECTED" - plugins/community-skills-pack/skills/last30days/SKILL.md, line 290
try_last30days_python() {
Show 17 more
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 368
export LAST30DAYS_NATIVE_SEARCH=1 # ONLY when you have a native web-search tool - plugins/community-skills-pack/skills/last30days/SKILL.md, line 592
SKILL_DIR="<absolute path of the directory containing the SKILL.md you just Read>" - plugins/community-skills-pack/skills/last30days/SKILL.md, line 881
SKILL_DIR="<absolute path of the directory containing the SKILL.md you Read>" - plugins/community-skills-pack/skills/last30days/SKILL.md, line 1226
SKILL_DIR="<absolute path of the directory containing the SKILL.md you Read>" - plugins/community-skills-pack/skills/last30days/SKILL.md, line 1246
QUERY_PLAN_FILE=$(mktemp "${TMPDIR:-/tmp}/last30days-plan.XXXXXX") - plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 341
result = subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 357
subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 375
subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/lib/chrome_cookies.py, line 71
result = subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/lib/chrome_cookies.py, line 88
except subprocess.TimeoutExpired: - plugins/community-skills-pack/skills/last30days/scripts/lib/chrome_cookies.py, line 127
result = subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/lib/chrome_cookies.py, line 160
except subprocess.TimeoutExpired: - plugins/community-skills-pack/skills/last30days/scripts/lib/env.py, line 242
result = subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/lib/env.py, line 249
except (subprocess.TimeoutExpired, OSError): - plugins/community-skills-pack/skills/last30days/scripts/lib/env.py, line 290
result = subprocess.run( - plugins/community-skills-pack/skills/last30days/scripts/lib/env.py, line 295
except (subprocess.TimeoutExpired, OSError): - plugins/community-skills-pack/skills/last30days/scripts/lib/github.py, line 58
result = subprocess.run(
and 20 more places
Downloads and installs other software
The author does not mention this.
Found in 27 places.
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 91
**Other install paths are fine:** `~/.codex/skills/`, `~/.agents/skills/`, an `npx skills add` install dir, or a repo checkout are all valid load points - the r - plugins/community-skills-pack/skills/last30days/SKILL.md, line 356
> - **Mac:** `brew install python@3.12` - plugins/community-skills-pack/skills/last30days/SKILL.md, line 358
> - **Linux:** `sudo apt install python3.12` (or `pyenv install 3.12`)
Show 17 more
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 526
- Run `brew install yt-dlp` (or `pip install yt-dlp`) - enables YouTube search + transcripts. - plugins/community-skills-pack/skills/last30days/SKILL.md, line 530
- Run `npx @mvanhorn/printing-press-library install digg --cli-only` - installs the Digg CLI for trending news, GitHub stars, and pipeline feeds. Activates when - plugins/community-skills-pack/skills/last30days/SKILL.md, line 533
- If the `gh` CLI is installed and authed (`brew install gh && gh auth login`), GitHub search is automatic. No API key required. - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 32
f" Mac: brew install python@{req}\n" - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 34
f" Linux: sudo apt install python{req} (or pyenv install {req})\n" - plugins/community-skills-pack/skills/last30days/scripts/lib/quality_nudge.py, line 314
"explanations on any topic. Install yt-dlp: brew install yt-dlp (free)" - plugins/community-skills-pack/skills/last30days/scripts/lib/quality_nudge.py, line 326
"and reduce reliance on fallback providers: brew install yt-dlp " - plugins/community-skills-pack/skills/last30days/scripts/lib/quality_nudge.py, line 327
"(macOS), scoop install yt-dlp (Windows), or pip install -U yt-dlp." - plugins/community-skills-pack/skills/last30days/scripts/lib/quality_nudge.py, line 342
"or pip install -U yt-dlp." - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 97
logger.warning("brew install yt-dlp failed: %s", proc.stderr) - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 102
logger.warning("brew install yt-dlp exception: %s", exc) - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 133
DIGG_INSTALL_CMD = f"npx -y {PRINTING_PRESS_NPM} install digg --cli-only" - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 217
logger.warning("npx install digg exception: %s", exc) - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 220
stderr = proc.stderr or f"npx install digg exited {proc.returncode}" - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 221
logger.warning("npx install digg failed (rc=%s): %s", proc.returncode, stderr) - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 233
logger.warning("npx install digg failed verification: %s", stderr) - plugins/community-skills-pack/skills/last30days/scripts/lib/setup_wizard.py, line 414
lines.append(" - yt-dlp install failed \u2014 run `brew install yt-dlp` manually")
and 7 more places
Changes files outside its own folder
The author does not mention this.
Found in 4 places.
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 429
**If the user picks Skip for now:** write `SETUP_COMPLETE=true` to `~/.config/last30days/.env` (append-only; run `mkdir -p ~/.config/last30days && touch ~/.conf - plugins/community-skills-pack/skills/last30days/SKILL.md, line 548
4. If it doesn't exist: `mkdir -p ~/.config/last30days && touch ~/.config/last30days/.env` - plugins/community-skills-pack/skills/last30days/scripts/lib/render.py, line 17
Per-harness skill install dirs (`~/.claude/skills`, `~/.codex/skills`, `~/.agents/skills`,
Show 1 more
- plugins/community-skills-pack/skills/last30days/scripts/test_device_auth.py, line 122
print(f"\nTo use it: echo 'SCRAPECREATORS_API_KEY={api_key}' >> ~/.config/last30days/.env")
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README. Expected for a research skill.
Found in 100 places.
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 708
WebSearch("{TOPIC} X twitter handle site:x.com") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 715
WebSearch("{TOPIC} company CEO of site:x.com") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 719
WebSearch("{TOPIC} creator founder X twitter site:x.com")
Show 17 more
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 725
WebSearch("{RELATED_PERSON_OR_ENTITY} X twitter handle site:x.com") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 773
WebSearch("{TOPIC} github profile site:github.com") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 804
WebSearch("{TOPIC} github repo site:github.com") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 983
WebSearch("{TOPIC} subreddit reddit community") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 984
WebSearch("{TOPIC} news {CURRENT_MONTH} {CURRENT_YEAR}") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 1077
WebSearch("OpenClaw Hermes Paperclip github repos AI coding agent") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 1078
WebSearch("OpenClaw Hermes Paperclip founders twitter X handles") - plugins/community-skills-pack/skills/last30days/SKILL.md, line 1079
WebSearch("OpenClaw Hermes Paperclip reddit subreddits community") - plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 17
from urllib.request import Request, urlopen - plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 227
with urlopen(request, timeout=120) as response: - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 382
help="Use web search to discover subreddits/handles before planning (for platforms without WebSearch)") - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 1248
"Hermes, Gemini, any agent with a WebSearch tool): YOU have " - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 1249
"WebSearch. Use it to run full Step 0.55 per entity, then invoke " - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 1251
" 1. WebSearch for '{topic} competitors' or '{topic} alternatives'.\n" - plugins/community-skills-pack/skills/last30days/scripts/last30days.py, line 1252
" 2. For each peer, WebSearch for handles/subs/github (Step 0.55).\n" - plugins/community-skills-pack/skills/last30days/scripts/lib/bluesky.py, line 121
response = http.request( - plugins/community-skills-pack/skills/last30days/scripts/lib/bluesky.py, line 240
response = http.request(
and 80 more places
Can call paid AI services billed to you
This is disclosed by the author in the skill's SKILL.md or README.
Found in 15 places.
- plugins/community-skills-pack/skills/last30days/SKILL.md, line 2013
- Legacy: Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery (fallback if no SCRAPECREATORS_API_KEY) - plugins/community-skills-pack/skills/last30days/SKILL.md, line 2014
- 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 - plugins/community-skills-pack/skills/last30days/SKILL.md, line 2019
- Optionally sends search queries to Brave Search API, Parallel AI API, Perplexity API (`api.perplexity.ai`), or OpenRouter API for web search / synthesis
Show 12 more
- plugins/community-skills-pack/skills/last30days/scripts/evaluate_search_quality.py, line 48
GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}" - plugins/community-skills-pack/skills/last30days/scripts/lib/perplexity.py, line 21
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions" - plugins/community-skills-pack/skills/last30days/scripts/lib/perplexity.py, line 22
PERPLEXITY_URL = "https://api.perplexity.ai/v1/sonar" - plugins/community-skills-pack/skills/last30days/scripts/lib/perplexity.py, line 23
PERPLEXITY_SEARCH_URL = "https://api.perplexity.ai/search" - plugins/community-skills-pack/skills/last30days/scripts/lib/perplexity.py, line 24
PERPLEXITY_ASYNC_URL = "https://api.perplexity.ai/v1/async/sonar" - plugins/community-skills-pack/skills/last30days/scripts/lib/providers.py, line 18
GEMINI_URL = "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={api_key}" - plugins/community-skills-pack/skills/last30days/scripts/lib/providers.py, line 19
OPENAI_RESPONSES_URL = "https://api.openai.com/v1/responses" - plugins/community-skills-pack/skills/last30days/scripts/lib/providers.py, line 20
XAI_RESPONSES_URL = "https://api.x.ai/v1/responses" - plugins/community-skills-pack/skills/last30days/scripts/lib/providers.py, line 21
OPENROUTER_URL = "https://openrouter.ai/api/v1/chat/completions" - plugins/community-skills-pack/skills/last30days/scripts/lib/quality_nudge.py, line 302
"XAI_API_KEY to your .env (get key at api.x.ai), or add " - plugins/community-skills-pack/skills/last30days/scripts/lib/transcribe.py, line 36
"openai": "https://api.openai.com/v1/audio/transcriptions", - plugins/community-skills-pack/skills/last30days/scripts/lib/xai_x.py, line 28
XAI_RESPONSES_URL = "https://api.x.ai/v1/responses"
Reads your browser cookies or saved passwords
This is disclosed by the author in the skill's SKILL.md or README.
Found in 10 places.
- plugins/community-skills-pack/skills/last30days/scripts/lib/chrome_cookies.py, line 65
Calls `security find-generic-password` which may trigger a system dialog - plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 144
"""Find the first directory that contains cookies.sqlite.""" - plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 147
if child.is_dir() and (child / "cookies.sqlite").is_file():
Show 7 more
- plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 159
Firefox locks cookies.sqlite while running, so we copy first. - plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 226
result = _query_cookies_db(default_profile / "cookies.sqlite", domain, cookie_names) - plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 237
db = child / "cookies.sqlite" - plugins/community-skills-pack/skills/last30days/scripts/lib/cookie_extract.py, line 254
Finds the default Firefox profile, copies cookies.sqlite to a temp file - plugins/community-skills-pack/skills/last30days/scripts/lib/safari_cookies.py, line 4
Parses ~/Library/Cookies/Cookies.binarycookies (unencrypted binary format) - plugins/community-skills-pack/skills/last30days/scripts/setup-keychain.sh, line 73
if security find-generic-password -a "$USER" -s "${PREFIX}${key}" -w >/dev/null 2>&1; then - plugins/community-skills-pack/skills/last30days/scripts/setup-keychain.sh, line 100
existing="$(security find-generic-password -a "$USER" -s "${PREFIX}${key}" -w 2>/dev/null || true)"
Reads your saved credentials, such as SSH keys or .env files
This is disclosed by the author in the skill's SKILL.md or README.
Found in 2 places.
- plugins/community-skills-pack/skills/last30days/scripts/lib/env.py, line 279
source like Keychain, so an explicit .env or process-env value still wins. - plugins/community-skills-pack/skills/last30days/scripts/lib/youtube_yt.py, line 172
SSH alias (configured in ~/.ssh/config). On macOS hosts with Homebrew,
Safer alternatives
Low-risk skills in the same category (research) that look related. Check that one does what you need.
- 100 Low risklast30days-researchsandbaseai/sandbase-skills · 211 stars
- 95 Low risklast30days-2sundial-org/awesome-openclaw-skills · 674 stars
- 100 Low risklast30dayscemini23/Cybersecurity-wiki · 12 stars
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'last30days' ] || [ -L ~/.agents/skills/'last30days' ]; then echo 'A skill folder named last30days already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/tensology/decisionsai' "$d" && git -C "$d" checkout --quiet '54239d84419e02067dff05bf4e0bc208764604ed' -- 'plugins/community-skills-pack/skills/last30days' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/community-skills-pack/skills/last30days' ~/.agents/skills/'last30days' && 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/'last30days' ~/.claude/skills/'last30days' (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 tensology/decisionsai shows the score of its lowest-scoring skill.
[](https://zalavijaysinh.github.io/skilltrust/repos/tensology/decisionsai/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-14 | 54239d8 | 41 |
| 2026-11-09 | 2d78e20 | 100 |