ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

last30days

Research any topic from the last 30 days. Sources: X (Twitter), YouTube transcripts, web search. Generates expert briefings and copy-paste prompts using Gemini.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/ralph-oei/last30days-gemini
Or

Credit: This skill is based on last30days by @mvanhorn. The original skill researches topics across Reddit, X, YouTube, and web. This version adds Gemini synthesis for briefings and prompts.

Original skill: github.com/mvanhorn/last30days-skill

last30days v2.1

Research any topic across X (Twitter), YouTube, and web. Find what's actually being discussed, recommended, and debated right now.

Setup

# Environment (should already be set)
export AUTH_TOKEN=your_x_auth_token
export CT0=your_x_ct0_token  
export BRAVE_API_KEY=your_brave_key

# Config
mkdir -p ~/.config/last30days
cat > ~/.config/last30days/.env << 'EOF'
BRAVE_API_KEY=your_key_here
EOF

Usage

# Quick research (faster, fewer sources)
python3 {baseDir}/scripts/last30days.py "AI agents" --quick

# Full research
python3 {baseDir}/scripts/last30days.py "AI agents" 

# Output formats
python3 {baseDir}/scripts/last30days.py "topic" --emit=json    # JSON for parsing
python3 {baseDir}/scripts/last30days.py "topic" --emit=compact  # Human readable
python3 {baseDir}/scripts/last30days.py "topic" --emit=md       # Full report

Output for AI Synthesis

The --emit=json flag outputs structured JSON that can be fed to Gemini for:

  • Expert briefing generation
  • Copy-paste ready prompts
  • Trend analysis

Sources

SourceAuthNotes
X/TwitterCookiesUses bird CLI with existing AUTH_TOKEN/CT0
YouTubeNoneRequires yt-dlp for transcripts
WebBrave APIRequires BRAVE_API_KEY

Synthesis

This skill researches and returns raw data. For AI-generated briefings and prompts, pipe the JSON output to Gemini:

python3 {baseDir}/scripts/last30days.py "topic" --quick --emit=json | python3 -c "
import json, sys, os
import urllib.request, urllib.parse

data = json.load(sys.stdin)
prompt = f'Synthesize this research into an expert briefing and 3 copy-paste prompts:\\n{json.dumps(data)}'

body = json.dumps({
    'contents': [{'parts': [{'text': prompt}]}],
    'generationConfig': {'temperature': 0.7, 'maxOutputTokens': 2048}
})

req = urllib.request.Request(
    'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=' + os.environ.get('GEMINI_API_KEY'),
    data=body.encode(),
    headers={'Content-Type': 'application/json'}
)
print(json.load(urllib.request.urlopen(req))['candidates'][0]['content']['parts'][0]['text'])
"

Attribution

Metadata

Author@ralph-oei
Stars1171
Views0
Updated2026-02-19
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-ralph-oei-last30days-gemini": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.