lastXdays
by @levineam
Research and summarize what happened in the last N days (or a date range) about a topic, optionally using Reddit API and X ingestion via x-cli/API/archive wi...
clawhub install lastxdaysπ About This Skill
name: lastxdays description: Research and summarize what happened in the last N days (or a date range) about a topic, optionally using Reddit API and X ingestion via x-cli/API/archive with graceful fallback to web.
lastXdays Skill
Summarize what happened in the last N days (or a specific YYYY-MM-DD β YYYY-MM-DD range) about a user-provided topic.
Default behavior is web-first (web_search + selective web_fetch). If optional credentials/data are available, you may ingest Reddit via API and X via x-cli (preferred), API, or local archive, falling back to web search if unavailable.
Trigger Patterns
Activate when the user message contains any of:
lastXdays / lastxdayslast x daysDefault Model
Default to sonnet (anthropic/claude-sonnet-4-6) when spawning as a subagent.
Use flash (openrouter/google/gemini-2.0-flash-001) only for simple single-source lookups (one topic, one platform, straightforward synthesis with no file reading required). Flash is unreliable for multi-step agentic work requiring tool chaining (search β fetch β read files β synthesize β report). When in doubt, use sonnet.
Input Parsing
Parse from the user message:
1) Date range (preferred if explicit)
If the user supplies a range like:from 2026-01-10 to 2026-02-082026-01-10 β 2026-02-08Then:
start = YYYY-MM-DDend = YYYY-MM-DDN if both are present.2) Days (N)
Otherwise, inferN:
N associated with the request, e.g.:lastxdays 7
- 7 lastxdays
- what happened in the last 14 days (about|re:)
N = 30N = min(max(N, 1), 365)3) Sources (optional)
Supported:web|reddit|x|all.Accept any of:
for web / sources webfor reddit / sources redditfor x / sources xfor all / sources allIf unspecified: sources = all.
4) Topic
Date Range (freshness)
Use an inclusive range in local time:
freshness = start + "to" + end (e.g., 2026-01-10to2026-02-08)Helper for βlast N daysβ:
node scripts/lastxdays_range.js Optional non-web ingestion (Reddit/X)
Use this helper to ingest Reddit/X when possible:
node scripts/lastxdays_ingest.js --source=reddit|x --topic "..." --start YYYY-MM-DD --end YYYY-MM-DD --limit 40The script attempts:
fallback:truex-cli search first (if installed/configured), then Twitter API v2 *recent search* (if bearer token + range <= ~7 days), then local archive at ~/clawd/data/x-archive/, else returns fallback:trueRequired environment variables (if you want API mode):
REDDIT_CLIENT_ID
- REDDIT_CLIENT_SECRET
- either REDDIT_REFRESH_TOKEN (recommended) or REDDIT_USERNAME + REDDIT_PASSWORD
- optional: REDDIT_USER_AGENTX_BEARER_TOKEN (also accepts TWITTER_BEARER_TOKEN)uv tool install x-cli (or from source)
- Configure credentials in ~/.config/x-cli/.env (supports shared setup with x-mcp)
- If present, lastxdays_ingest.js uses it before raw API/archive for X searchCredentials loader:
~/.config/last30days/.env if present (does not hard-fail if missing).env values (file only fills blanks)Research Procedure
1) Compute start/end/freshness.
2) For each requested source:
Web
web_search with freshness (count 5β8)web_fetch 2β6 best linksnode scripts/lastxdays_ingest.js --source=reddit ...fallback:false, treat returned items[] as βNotable linksβ (each has a Reddit permalink URL).items[] is empty / too small to be useful (e.g., <3), you may *also* run the web fallback to broaden coverage.Fallback (if fallback:true):
web_search with query site:reddit.com/r and the same freshnessX
Preferred:node scripts/lastxdays_ingest.js --source=x ...mode=x-cli, mode=api, or mode=archive, treat returned items[] as βNotable linksβ (each has a URL)mode=x-cli, note that X results came from local x-cli execution
- If mode=archive, note that links come from the local X archive
items[] is empty / too small to be useful (e.g., <3), you may *also* run the web fallback to broaden coverage.Fallback (if fallback:true):
web_search with query site:x.com and the same freshnessweb_fetch to fail often on x.com; rely on snippets when needed3) Select and deduplicate links/items:
Output Format (Markdown)
Title:
## lastXdays β days β days with YYYY-MM-DD β YYYY-MM-DD.Then include sections in this order:
1) Date range used
YYYY-MM-DD β YYYY-MM-DD (and optionally the freshness string)2) Top themes
3) Notable links Group by platform in this order, including only platforms actually searched:
For each link/item:
4) What to follow up on
Smoke tests (local)
Date range helper:
node scripts/lastxdays_range.js 7Reddit ingest (requires creds or it will return fallback=true):
node scripts/lastxdays_ingest.js --source=reddit --topic "OpenClaw security vulnerability CVE" --start 2026-02-07 --end 2026-02-08 --limit 20 --prettyX ingest (x-cli if installed; else API if bearer token + <=7 days; else local archive; else fallback=true):
node scripts/lastxdays_ingest.js --source=x --topic "OpenClaw" --start 2026-02-07 --end 2026-02-08 --limit 20 --prettyOptional x-cli direct smoke test:
x-cli -v -j tweet search "OpenClaw since:2026-02-07 until:2026-02-09" --max 20Examples
lastxdays AI agents for weblast x days 10 bitcoin ETF flowswhat happened in the last 7 days about OpenAI for reddit14 lastXdays Apple Vision Pro for weblastxdays 30 OpenAI sources alllastxdays from 2026-01-01 to 2026-01-15 about Anthropic sources redditπ‘ Examples
lastxdays AI agents for weblast x days 10 bitcoin ETF flowswhat happened in the last 7 days about OpenAI for reddit14 lastXdays Apple Vision Pro for weblastxdays 30 OpenAI sources alllastxdays from 2026-01-01 to 2026-01-15 about Anthropic sources reddit