last30days
42 / 100 · High risk
Only if you trust the author. Some of what it can do is expected: a coding skill usually runs build and test commands.
By LeoYeAI/agent-master-skills (GitHub) · coding · 2,186 stars · scanned at commit 8f88f9a
Research a topic from the last 30 days. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Become an expert and write copy-paste-ready prompts.
Works with any agent that supports SKILL.md skills.
What this skill can do
Changes files outside its own folder
The author does not mention this.
Found in 20 places.
- skills/last30days-skill/README.md, line 26
mkdir -p ~/.config/last30days - skills/last30days-skill/README.md, line 27
cat > ~/.config/last30days/.env << 'EOF' - skills/last30days-skill/README.md, line 75
cp variants/open/SKILL.md ~/.claude/skills/last30days/SKILL.md
Show 17 more
- skills/last30days-skill/SKILL-original.md, line 66
mkdir -p ~/.config/last30days - skills/last30days-skill/SKILL-original.md, line 67
cat > ~/.config/last30days/.env << 'ENVEOF' - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 39
mv ~/.claude/skills/last30days ~/.claude/skills/last30days.backup-v1 - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 45
rm ~/.claude/skills/last30daystest - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 48
ln -s /Users/mvanhorn/last30days-skill-private ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 58
rm ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 59
mv ~/.claude/skills/last30days.backup-v1 ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 281
rm ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 282
mv ~/.claude/skills/last30days.backup-v1 ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 335
| Mar 1 | Delete backup: `rm -rf ~/.claude/skills/last30days.backup-v1` | User | - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 359
rm ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 360
mv ~/.claude/skills/last30days.backup-v1 ~/.claude/skills/last30days - skills/last30days-skill/docs/plans/2026-02-06-feat-visible-query-parsing-display-plan.md, line 77
cp /Users/mvanhorn/last30days-skill-private/SKILL.md ~/.claude/skills/last30days/SKILL.md - skills/last30days-skill/docs/plans/2026-02-06-test-v1-vs-v2-comparison-plan.md, line 24
cp ~/.claude/skills/last30days/SKILL.md ~/.claude/skills/last30days/SKILL.md.v2 - skills/last30days-skill/docs/plans/2026-02-06-test-v1-vs-v2-comparison-plan.md, line 28
git show upstream/main:SKILL.md > ~/.claude/skills/last30days/SKILL.md - skills/last30days-skill/docs/plans/2026-02-06-test-v1-vs-v2-comparison-plan.md, line 35
cp ~/.claude/skills/last30days/SKILL.md.v2 ~/.claude/skills/last30days/SKILL.md - skills/last30days-skill/docs/plans/2026-02-14-feat-merge-openclaw-variant-plan.md, line 122
ln -sf ~/.claude/skills/last30days/variants/open/SKILL.md ~/.claude/skills/last30days-open/SKILL.md
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this.
Found in 2 places.
- skills/last30days-skill/README.md, line 27
cat > ~/.config/last30days/.env << 'EOF' - skills/last30days-skill/SKILL-original.md, line 67
cat > ~/.config/last30days/.env << 'ENVEOF'
Downloads and installs other software
The author does not mention this.
Found in 13 places.
- skills/last30days-skill/README.md, line 796
claude mcp add codex-cli -- npx -y codex-mcp-server - skills/last30days-skill/README.md, line 858
- **yt-dlp** (optional) - For YouTube search + transcript extraction. Install via `brew install yt-dlp` or `pip install yt-dlp`. When present, automatically sea - skills/last30days-skill/README.md, line 910
**YouTube is now a 4th research source.** When yt-dlp is installed (`brew install yt-dlp`), /last30days automatically searches YouTube for your topic, fetches v
Show 10 more
- skills/last30days-skill/docs/plans/2026-02-03-bird-cli-integration-design.md, line 23
│ ├─ Yes → Run `npm install -g @steipete/bird` - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-integration-design.md, line 43
- `install_bird()` → runs `npm install -g @steipete/bird`, returns success bool - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 11
Replace the `subprocess.run(["bird", "search", ...])` dependency in `bird_x.py` with a vendored Node.js module that calls Twitter's GraphQL search API directly. - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 18
- New users can't `npm install -g @steipete/bird` - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 162
- [ ] No `npm install -g @steipete/bird` required anywhere - skills/last30days-skill/docs/v2.1-launch-copy.md, line 111
Zero API keys for YouTube. Zero cost. Just `brew install yt-dlp`. - skills/last30days-skill/scripts/last30days.py, line 1086
source_info["youtube_skip_reason"] = "yt-dlp not installed — fix: brew install yt-dlp" - skills/last30days-skill/scripts/lib/render.py, line 288
reason = source_info.get("youtube_skip_reason", "yt-dlp not installed (brew install yt-dlp)") - skills/last30days-skill/scripts/lib/ui.py, line 392
lines.append(f"{Colors.DIM}│{Colors.RESET} └─ Fix: brew install yt-dlp (free) {Colors.DIM}│{Colors.RESET}") - skills/last30days-skill/scripts/lib/ui.py, line 429
lines.append("│ └─ Fix: brew install yt-dlp (free) │")
Can call paid AI services billed to you
This is disclosed by the author in the skill's SKILL.md or README.
Found in 9 places.
- skills/last30days-skill/README.md, line 952
| `api.openai.com` | Search query (topic string) | OPENAI_API_KEY | - skills/last30days-skill/README.md, line 954
| Twitter GraphQL / `api.x.ai` | Search query | Browser cookies or XAI_API_KEY | - skills/last30days-skill/SKILL.md, line 484
- Sends search queries to OpenAI's Responses API (`api.openai.com`) for Reddit discovery
Show 6 more
- skills/last30days-skill/SKILL.md, line 485
- Sends search queries to Twitter's GraphQL API (via browser cookie auth) or xAI's API (`api.x.ai`) for X search - skills/last30days-skill/scripts/lib/models.py, line 9
OPENAI_MODELS_URL = "https://api.openai.com/v1/models" - skills/last30days-skill/scripts/lib/models.py, line 13
XAI_MODELS_URL = "https://api.x.ai/v1/models" - skills/last30days-skill/scripts/lib/openai_reddit.py, line 43
OPENAI_RESPONSES_URL = "https://api.openai.com/v1/responses" - skills/last30days-skill/scripts/lib/openrouter_search.py, line 18
ENDPOINT = "https://openrouter.ai/api/v1/chat/completions" - skills/last30days-skill/scripts/lib/xai_x.py, line 17
XAI_RESPONSES_URL = "https://api.x.ai/v1/responses"
Runs commands on your computer
The author does not mention this. Expected for a coding skill.
Found in 33 places.
- skills/last30days-skill/SKILL.md, line 91
for dir in \ - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 52
result = subprocess.run( - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 62
except (subprocess.TimeoutExpired, FileNotFoundError, Exception):
Show 17 more
- skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 106
result = subprocess.run( - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 117
except subprocess.TimeoutExpired: - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 207
result = subprocess.run( - skills/last30days-skill/docs/plans/2026-02-03-bird-cli-implementation.md, line 225
except subprocess.TimeoutExpired: - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 11
Replace the `subprocess.run(["bird", "search", ...])` dependency in `bird_x.py` with a vendored Node.js module that calls Twitter's GraphQL search API directly. - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 25
**Vendor Bird's search-only subset as a Node.js module inside /last30days, called from Python via `subprocess.run(["node", ...])`.** - skills/last30days-skill/docs/plans/2026-02-07-feat-bundle-bird-x-search-plan.md, line 29
- Replace `subprocess.run(["bird", "search", ...])` with `subprocess.run(["node", "vendor/bird-search.mjs", ...])` - skills/last30days-skill/docs/plans/2026-02-14-feat-youtube-transcript-search-plan.md, line 80
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30) - skills/last30days-skill/docs/plans/2026-02-14-feat-youtube-transcript-search-plan.md, line 123
subprocess.run(cmd, capture_output=True, text=True, timeout=30) - skills/last30days-skill/scripts/lib/bird_x.py, line 110
result = subprocess.run( - skills/last30days-skill/scripts/lib/bird_x.py, line 119
except (subprocess.TimeoutExpired, FileNotFoundError, subprocess.SubprocessError): - skills/last30days-skill/scripts/lib/bird_x.py, line 184
proc = subprocess.Popen( - skills/last30days-skill/scripts/lib/bird_x.py, line 186
stdout=subprocess.PIPE, - skills/last30days-skill/scripts/lib/bird_x.py, line 187
stderr=subprocess.PIPE, - skills/last30days-skill/scripts/lib/bird_x.py, line 201
except subprocess.TimeoutExpired: - skills/last30days-skill/scripts/lib/bird_x.py, line 310
proc = subprocess.Popen( - skills/last30days-skill/scripts/lib/bird_x.py, line 312
stdout=subprocess.PIPE,
and 13 more places
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 46 places.
- skills/last30days-skill/docs/plans/2026-02-03-bird-cli-integration-design.md, line 32
3. Fall back to WebSearch if nothing else available - skills/last30days-skill/docs/plans/2026-02-06-feat-last30days-bird-cli-release-plan.md, line 214
- [ ] `allowed-tools` includes `Bash`, `WebSearch` - skills/last30days-skill/docs/plans/2026-02-06-feat-visible-query-parsing-display-plan.md, line 22
[immediately runs bash + WebSearch]
Show 17 more
- skills/last30days-skill/docs/plans/2026-02-06-feat-visible-query-parsing-display-plan.md, line 32
[then runs bash + WebSearch] - skills/last30days-skill/docs/plans/2026-02-06-fix-skill-execution-fork-mode-plan.md, line 59
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch - skills/last30days-skill/docs/plans/2026-02-06-fix-skill-execution-fork-mode-plan.md, line 69
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch - skills/last30days-skill/docs/plans/2026-02-06-fix-skill-execution-fork-mode-plan.md, line 141
4. WebSearch as step 2 (not step 1) - skills/last30days-skill/docs/plans/2026-02-06-fix-skill-execution-fork-mode-plan.md, line 156
- [ ] WebSearch supplements, doesn't replace, script results - skills/last30days-skill/docs/plans/2026-02-14-feat-codex-skill-compatibility-plan.md, line 71
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch - skills/last30days-skill/plans/feat-add-websearch-source.md, line 87
"""Claude WebSearch API client for general web discovery.""" - skills/last30days-skill/plans/feat-add-websearch-source.md, line 121
"""Search web using Claude's built-in WebSearch tool. - skills/last30days-skill/plans/feat-add-websearch-source.md, line 123
NOTE: This runs INSIDE Claude Code, so we use the WebSearch tool directly. - skills/last30days-skill/plans/feat-add-websearch-source.md, line 130
"""Parse WebSearch results into normalized format.""" - skills/last30days-skill/plans/feat-add-websearch-source.md, line 181
"""Score WebSearch items WITHOUT engagement metrics. - skills/last30days-skill/plans/feat-add-websearch-source.md, line 263
"""Determine available sources. WebSearch always available (no API key).""" - skills/last30days-skill/plans/feat-add-websearch-source.md, line 268
return 'both' # WebSearch available but not default - skills/last30days-skill/plans/feat-add-websearch-source.md, line 274
return 'web' # Fallback: WebSearch only (no keys needed) - skills/last30days-skill/plans/feat-add-websearch-source.md, line 308
Test harness to validate WebSearch doesn't overpower Reddit/X. - skills/last30days-skill/plans/feat-add-websearch-source.md, line 312
2. Reddit + X + WebSearch (comparison) - skills/last30days-skill/plans/feat-add-websearch-source.md, line 314
Verify: WebSearch items rank lower on average.
and 26 more places
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Other copies in this repository
LeoYeAI/agent-master-skills has 1 more folder with a skill named last30days. This page shows the lowest-scoring copy.
- skills/last30days-skill/variants/open 95/100 · Low risk
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/LeoYeAI/agent-master-skills' "$d" && git -C "$d" checkout --quiet '8f88f9a0dd5a1075d4f0c7626f9d960844d57575' -- 'skills/last30days-skill' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/last30days-skill' ~/.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 LeoYeAI/agent-master-skills shows the score of its lowest-scoring skill.
[](https://zalavijaysinh.github.io/skilltrust/repos/LeoYeAI/agent-master-skills/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-08 | 8f88f9a | 42 |
| 2026-11-07 | 8f88f9a | 40 |