Skip to content
Agentmart
Submit a tool

last30days

Multi-query social search with intelligent planning.

Skill by bobvarkey

IndexedMIT★ 1
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/bobvarkey-last30days

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Multi-query social search with intelligent planning. Agent plans queries when possible, falls back to Gemini/OpenAI when not. Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.

Use cases: research, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/last30days

Tools it pre-approves 5

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash,
  • Read,
  • Write,
  • AskUserQuestion,
  • WebSearch

What's inside

Skill name
last30days
Description
Multi-query social search with intelligent planning. Agent plans queries when possible, falls back to Gemini/OpenAI when not. Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web.
License
MIT
Allowed tools
Bash,, Read,, Write,, AskUserQuestion,, WebSearch
Instructions
1,323 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves some shell commands
  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Agent Skills spec issues

  • name: "last30days" does not match folder "last30days-skill"
  • body: 1323 lines (spec recommends under 500)

Files (200)

  • SKILL.md · .agents/skills/last30days/
  • marketplace.json · .claude-plugin/
  • plugin.json · .claude-plugin/
  • .clawhubignore
  • plugin.json · .codex-plugin/
  • .gitignore
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTORS.md
  • LICENSE
  • README.md
  • SKILL-original.md
  • SKILL.md
  • SPEC.md
  • TASKS.md
  • openai.yaml · agents/
  • aging-portrait.jpeg · assets/
  • claude-code-rap.mp3 · assets/
  • dog-as-human.png · assets/
  • dog-original.jpeg · assets/
  • swimmom-mockup.jpeg · assets/
  • how-search-works.md · docs/
  • pr-credits.md · docs/
  • search-quality-eval.md · docs/
  • v1-SKILL.md · docs/test-results/v1-vs-v2-20260206-231338/
  • 1-prompting-techniques-for-chatgpt-for-legal-questio.stderr.txt · docs/test-results/v1-vs-v2-20260206-231338/v1/
  • 1-prompting-techniques-for-chatgpt-for-legal-questio.txt · docs/test-results/v1-vs-v2-20260206-231338/v1/
  • analysis.md · docs/test-results/v1-vs-v2-quick/
  • v1-SKILL.md · docs/test-results/v1-vs-v2-quick/
  • 1-kanye-west.txt · docs/test-results/v1-vs-v2-quick/v1/
  • 3-open-claw.txt · docs/test-results/v1-vs-v2-quick/v1/
  • 4-nano-banana-pro-prompting.txt · docs/test-results/v1-vs-v2-quick/v1/
  • 5-how-to-best-setup-clawdbot.txt · docs/test-results/v1-vs-v2-quick/v1/
  • v2-SKILL.md · docs/test-results/v1-vs-v2-quick/
  • 1-kanye-west.txt · docs/test-results/v1-vs-v2-quick/v2/
  • v2.1-launch-copy.md · docs/
  • v2.5-launch-tweets.md · docs/
  • models_openai_sample.json · fixtures/
  • models_xai_sample.json · fixtures/
  • openai_sample.json · fixtures/
  • reddit_thread_sample.json · fixtures/
  • tiktok_search.json · fixtures/
  • xai_sample.json · fixtures/
  • gemini-extension.json
  • hooks.json · hooks/
  • check-config.sh · hooks/scripts/
  • feat-add-websearch-source.md · plans/
  • fix-strict-date-filtering.md · plans/
  • pyproject.toml
  • release-notes.md
  • briefing.py · scripts/
  • compare.sh · scripts/
  • evaluate_search_quality.py · scripts/
  • last30days.py · scripts/
  • __init__.py · scripts/lib/
  • bird_x.py · scripts/lib/
  • bluesky.py · scripts/lib/
  • chrome_cookies.py · scripts/lib/
  • cluster.py · scripts/lib/
  • cookie_extract.py · scripts/lib/
  • …and 140 more

SKILL.md (first lines)

# last30days v2.9.5: Research Any Topic from the Last 30 Days

> **Permissions overview:** Reads public web/platform data and optionally saves research briefings to `~/Documents/Last30Days/`. X/Twitter search uses optional user-provided tokens (AUTH_TOKEN/CT0 env vars). Bluesky search uses optional app password (BSKY_HANDLE/BSKY_APP_PASSWORD env vars - create at bsky.app/settings/app-passwords). All credential usage and data writes are documented in the [Security & Permissions](#security--permissions) section.

Research ANY topic across Reddit, X, YouTube, and other sources. Surface what people are actually discussing, recommending, betting on, and debating right now.

## Runtime Preflight

Before running any `last30days.py` command in this skill, resolve a Python 3.12+ interpreter once and keep it in `LAST30DAYS_PYTHON`:

```bash
for py in python3.14 python3.13 python3.12 python3; do
  command -v "$py" >/dev/null 2>&1 || continue
  "$py" -c 'import sys; raise SystemExit(0 if sys.version_info >= (3, 12) else 1)' || continue
  LAST30DAYS_PYTHON="$py"
  break
done

if [ -z "${LAST30DAYS_PYTHON:-}" ]; then
  echo "ERROR: last30days v3 requires Python 3.12+. Install python3.12 or python3.13 and rerun." >&2
  exit 1
fi
```

## Step 0: First-Run Setup Wizard

**CRITICAL: ALWAYS execute Step 0 BEFORE Step 1, even if the user provided a topic.** If the user typed `/last30days Mercer Island`, you MUST check for FIRST_RUN and present the wizard BEFORE running research. The topic "Mercer Island" is preserved — research runs immediately after the wizard completes. Do NOT skip the wizard because a topic was provided. The wizard takes 10 seconds and only runs once ever.

To detect first run: check if `~/.config/last30days/.env` exists. If it does NOT exist, this is a first run. **Do NOT run any Bash commands or show any command output to detect this — just check the file existence silently.** If the file exists and contains `SETUP_COMPLETE=true`, skip this section **silently** and proceed to Step 1. **Do NOT say "Setup is complete" or any other status message — just move on.** The user doesn't need to be told setup is done every time they run the skill.

**When first run is detected, detect your platform first:**

**If you do NOT have WebSearch capability (OpenClaw, Codex, raw CLI):** Run the OpenClaw setup flow below.
**If you DO have WebSearch (Claude Code):** Run the standard setup flow below.

---

### OpenClaw / Non-WebSearch Setup Flow

Run environment detection first:
```bash
"${LAST30DAYS_PYTHON}" "${SKILL_ROOT}/scripts/last30days.py" setup --openclaw
```

Read the JSON output. It tells you what's already configured. Display a status summary:

```
👋 Welcome to /last30days!

Detected:
{✅ or ❌} yt-dlp (YouTube search)
{✅ or ❌} X/Twitter ({method} configured)
{✅ or ❌} ScrapeCreators (TikTok, Instagram, Reddit backup)
{✅ or ❌} Web search ({backend} configured)
```

Then for each missing item, offer setup in priority order:

1. **ScrapeCreators** (if not configured): "ScrapeCreators adds TikTok and Instagram search (plus a Reddit backup if public Reddit gets rate-limited). 10,000 free calls, no credit card. (No referrals, no kickbacks - we don't get a cut.)"
   - Option A: "ScrapeCreators via GitHub (recommended)" -- Check if `gh` CLI was detected in the environment detection output above. If gh IS detected: description should say "Registers directly via GitHub CLI in ~2 seconds - no browser needed". Before running the command, display: "Registering via GitHub CLI..." If gh is NOT detected: description should say "Copies a one-time code to your clipboard and opens GitHub to authorize". Before running the command, display: "I'll copy a one-time code to your clipboard and open GitHub. When GitHub asks for a device code, just paste (Cmd+V / Ctrl+V)." Then run `"${LAST30DAYS_PYTHON}" "${SKILL_ROOT}/scripts/last30days.py" setup --github`, parse JSON output. Tries PAT first (if `gh` is installed), falls back to device flow which copies a one-time code to your clipboard and opens your browser. If `status` is `success`, write `SCRAPECREATORS_API_KEY={api_key}` to .env.
   - Option B: "I have a key" -- accept paste, write to .env
   - Option C: "Skip for now"

2. **X/Twitter** (if not configured): "X search finds tweets and conversations. To unlock X: add FROM_BROWSER=auto (reads browser cookies, free), XAI_API_KEY (no browser access, api.x.ai), or AUTH_TOKEN+CT0 (manual cookies)."
   - Option A: "I have an xAI API key" (recommended for servers -- persistent, no expiry). Write XAI_API_KEY to .env.
   - Option B: "I have AUTH_TOKEN + CT0 from my browser" -- accept both, write to .env
   - Option C: "Skip for now"

3. **YouTube** (if yt-dlp not found): "YouTube search needs yt-dlp. Run: `pip install yt-dlp`"

4. **Web search** (if no Brave/Exa/Serper key): "A web search key enables smarter results. Brave Search is free for 2,000 queries/month at brave.com/search/api"

After setup, write `SETUP_COMPLETE=true` to .env and proceed to research.

**Skip to "END OF FIRST-RUN WIZARD" below after completing the OpenClaw flow.**

---

### Claude Code Setup Flow (Standard)

**You MUST follow these steps IN ORDER. Do NOT skip ahead to the topic picker or research. The sequence is: (1) welcome text -> (2) setup modal -> (3) run setup if chosen -> (4) optional ScrapeCreators modal -> (5) topic picker. You MUST start at step 1.**

**Step 1: Display the following welcome text ONCE as a normal message (not blockquoted). Then IMMEDIATELY call AskUserQuestion - do NOT repeat any of the welcome text inside the AskUserQuestion call.**

Welcome to /last30days!

I research any topic across Reddit, X, YouTube, and other sources - synthesizing what people are actually saying right now.

Auto setup gives you 5 core sources for free in 30 seconds:
- X/Twitter - reads your x.com browser cookies to authenticate (not saved to disk). Chrome on macOS will prompt for Keychain access.
- Reddit with comments - public JSON, no API key needed
- YouTube search + transcripts - installs yt-dlp (open source, 190K+ GitHub stars)
- Hacker News + Polymarket + GitHub (if `gh` CLI installed) - always on, zero config

Want TikTok and Instagram too? ScrapeCreators adds those (10,000 free calls, scrapecreators.com). No kickbacks, no affiliation.

**Then call AskUserQuestion with ONLY this question and these options - no additional text:**

Question: "How would you like to set up?"
Options:
- "Auto setup (~30 seconds) - scans browser cookies for X + installs yt-dlp for YouTube"
- "Manual setup - show me what to configure"
- "Skip for now - Reddit (with comments), HN, Polymarket, GitHub (if gh installed), Web"

**If the user picks 1 (Auto setup):**

**Before running the setup command, get cookie consent:**

Check if `BROWSER_CONSENT=true` already exists in `~/.config/last30days/.env`. If it does, skip the consent prompt and run setup directly.

If `BROWSER_CONSENT=true` is NOT present, **call AskUserQuestion:**
Question: "Auto setup will scan your browser for x.com cookies to authenticate X search. Cookies are read live, not saved to disk. Chrome on macOS will prompt for Keychain access. OK to proceed?"
Options:
- "Yes, scan my cookies for X" - Run setup as normal. Append `BROWSER_CONSENT=true` to .env after setup completes.
- "Skip X, just set up YouTube" - Run setup with YouTube only (install yt-dlp). Do not scan cookies.
- "I have an xAI API key instead" - Ask them to paste it, write XAI_API_KEY to .env. Then install yt-dlp.

Run the setup subcommand:
```bash

From bobvarkey/openclaw-workspace, MIT.

More from bobvarkey/openclaw-workspace

Signals

Stars
1
Forks
0
Open issues
0
Last commit (this folder)
Apr 16, 2026 (6 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

Same skill elsewhere

Copies of this SKILL.md published by others; search shows only one of them.

More from bobvarkey

Cite this page

last30days skill. Agent Mart. https://agentmart.dev/skills/bobvarkey-last30days (last updated 2026-10-24)