← Back to Skills Marketplace
mvanhorn

last30days

by Matt Van Horn · GitHub ↗ · v3.0.0-open · MIT-0
cross-platform ⚠ suspicious
141
Downloads
0
Stars
0
Active Installs
5
Versions
Install in OpenClaw
/install last30days-v3-beta
Description
Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Perplexity, and more. AI agent scores by upvotes, likes, an...
README (SKILL.md)

last30days (open variant): Research + Watchlist + Briefings

Multi-mode research skill with persistent knowledge accumulation.

Command Routing

Parse the user's first argument to determine the mode:

First word Mode Reference
watch Watchlist management references/watchlist.md
briefing Morning briefing references/briefing.md
history Query accumulated knowledge references/history.md
(anything else) One-shot research references/research.md

Setup: Find Skill Root

for dir in \
  "." \
  "${CLAUDE_PLUGIN_ROOT:-}" \
  "${GEMINI_EXTENSION_DIR:-}" \
  "$HOME/.gemini/extensions/last30days-skill" \
  "$HOME/.gemini/extensions/last30days" \
  "$HOME/.claude/skills/last30days" \
  "$HOME/.agents/skills/last30days" \
  "$HOME/.codex/skills/last30days"; do
  [ -n "$dir" ] && [ -f "$dir/scripts/last30days.py" ] && SKILL_ROOT="$dir" && break
done

if [ -z "${SKILL_ROOT:-}" ]; then
  echo "ERROR: Could not find scripts/last30days.py" >&2
  exit 1
fi

Use $SKILL_ROOT for all script and reference file paths.

Load Context

At session start, read ${SKILL_ROOT}/variants/open/context.md for user preferences and source quality notes. Update it after interactions.

Shared Configuration

  • Database: ~/.local/share/last30days/research.db (SQLite, WAL mode)
  • Briefings: ~/.local/share/last30days/briefs/
  • API keys: ~/.config/last30days/.env or environment variables
  • Key priority: env vars > config file

API Keys

Key Required Purpose
OPENAI_API_KEY For Reddit Reddit search via OpenAI responses API
XAI_API_KEY For X (fallback) X search via xAI Grok API
OPENROUTER_API_KEY Optional Perplexity Sonar Pro search + AI reasoning (planning/reranking). Add INCLUDE_SOURCES=perplexity to enable. Use --deep-research for exhaustive reports.
PARALLEL_API_KEY Optional Web search via Parallel AI
BRAVE_API_KEY Optional Web search via Brave Search

Bird CLI provides free X search if installed. YouTube search uses yt-dlp (free).

Run python3 "${SKILL_ROOT}/scripts/last30days.py" --diagnose to check source availability.

Routing Logic

After determining the mode, read the corresponding reference file using the Read tool:

Read: ${SKILL_ROOT}/variants/open/references/{mode}.md

Then follow the instructions in that reference file exactly.

Usage Guidance
This package includes a full Python+JS research engine that will read and write files in your home directory, save full reports (including transcripts) to ~/.local/share and ~/Documents, and can use many third-party APIs. The registry metadata omits the many required credentials and binaries that the skill actually expects (Node.js, yt-dlp, and API keys like OPENAI_API_KEY, OPENROUTER_API_KEY, SCRAPECREATORS_API_KEY, AUTH_TOKEN/CT0, etc.). Before installing: (1) review the code files (scripts/) yourself or in a sandbox, (2) do not provide long-lived browser tokens (AUTH_TOKEN/CT0) unless you understand the implications, (3) only populate ~/.config/last30days/.env with keys you trust this tool to use, (4) consider running the skill in an isolated environment or VM, and (5) be aware it will create persistent local data and recommends cronjobs for automation. The mismatches between declared metadata and actual requirements are the primary risk — if you want to proceed, insist the author update the manifest to list required env vars and binaries and document any third-party endpoints used (e.g., ScrapeCreators, Perplexity/OpenRouter).
Capability Analysis
Type: OpenClaw Skill Name: last30days-v3-beta Version: 3.0.0-open The 'last30days' skill is a sophisticated research tool that aggregates and synthesizes data from numerous social media platforms (X, Reddit, YouTube, TikTok, Instagram, etc.) and web sources. The codebase implements a complex pipeline involving query planning, entity resolution, SQLite-based data accumulation, and LLM-driven reranking. It includes functional features such as an automated setup wizard that installs 'yt-dlp' via Homebrew, a vendored Node.js-based X search client (Bird), and support for third-party scraping services like ScrapeCreators. While the skill requires broad permissions and handles multiple API keys, its operations are transparently documented and aligned with its research objectives. Security-conscious patterns are evident, such as masking secrets in logs and verifying configuration file permissions.
Capability Tags
cryptocan-make-purchasesrequires-oauth-token
Capability Assessment
Purpose & Capability
The skill claims to research social/web sources (reasonable), and the code implements that. However the registry declares no required environment variables or binaries while SKILL.md and the Python code clearly expect many API keys (OPENAI_API_KEY, OPENROUTER_API_KEY, PARALLEL_API_KEY, BRAVE_API_KEY, XAI_API_KEY, SCRAPECREATORS_API_KEY, AUTH_TOKEN/CT0, etc.) and external tools (Node.js for the vendored bird-search, yt-dlp for YouTube). The omission in registry metadata is an incoherence: a researcher skill legitimately needs those credentials and binaries, but the metadata does not declare them.
Instruction Scope
SKILL.md instructs the agent to find the skill root, read and update persistent context (variants/open/context.md), run Python scripts in the skill folder, and read multiple reference files. The runtime explicitly reads/writes a SQLite DB (~/.local/share/last30days/research.db), saves briefings to ~/.local/share/last30days/briefs/ and ~/Documents/Last30Days/, and may write a ~/.config/last30days/.env. It also instructs launching subprocesses (node, yt-dlp) and using web backends. These actions are consistent with a research/watchlist tool, but they involve persistent local storage and credential files which the registry metadata did not announce.
Install Mechanism
There is no install spec in the registry (instruction-only), yet the skill bundle contains a substantial Python codebase and vendored JavaScript (bird-search). The vendored JS avoids external downloads (good), but the code will spawn Node subprocesses and expects yt-dlp and other binaries to be present. The absence of declared required binaries in the metadata (node, yt-dlp) is an inconsistency and increases surprise-install risk.
Credentials
SKILL.md and the code reference many sensitive environment variables and credential sources (OpenAI/OpenRouter keys, Parallel/Brave keys, ScrapeCreators, xAI, X AUTH_TOKEN/CT0 browser tokens, etc.) and expect a ~/.config/last30days/.env or process env injection. The registry lists no required env vars or primary credential, which is a mismatch. Requesting browser tokens (AUTH_TOKEN/CT0) or device-auth flows is powerful and should be explicitly declared before install.
Persistence & Privilege
The skill persistently stores data (SQLite DB, saved briefings in user home, full raw dumps with transcripts). It instructs users how to set up cron/launchd automation and includes a setup wizard that can write config. The skill does not set always:true and does not appear to modify other skills' configs. Persistent writes to the user's Documents and ~/.local/share are consistent with watchlist/briefing features but are notable privacy/footprint considerations the user should accept explicitly.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install last30days-v3-beta
  3. After installation, invoke the skill by name or use /last30days-v3-beta
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v3.0.0-open
last30days v3.0.0-open - Major update with significant changes to data sources and core functionality. - Now supports research across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Perplexity, and more. - Adds scoring by upvotes, likes, and real-money signals. - Refined agent routing and configuration; updated command parsing and documentation. - Removes/deprecates advanced configuration and internal metadata from user documentation for simplicity.
v3.0.2-beta
- Improved skill description and documentation for clarity and transparency. - Updated API key and configuration details, including new supported providers and fallback behavior. - Enhanced security section, clearly outlining what the skill does and does not do. - Added detailed external endpoint table for greater user trust. - More flexible setup and detection of skill root directory for compatibility.
v3.0.1-beta
last30days 3.0.1-beta – multi-query social search with intelligent planning - Adds new research skill supporting queries across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, and the web. - Intelligent agent plans direct queries; falls back to Gemini/OpenAI when necessary. - Supports modes for one-shot research, watchlist monitoring, and automated briefings. - Uses ScrapeCreators API and optional keys for wider source coverage. - Stores findings locally; fully transparent about external endpoints and permissions. - CLI diagnostics and setup instructions included.
v3.0.0-beta
- Major update introducing multi-query social search with intelligent planning. - Adds research coverage for Reddit, X (Twitter), YouTube, TikTok, Instagram, Hacker News, Polymarket, and web sources. - Supports research, watchlists, and briefings across multiple platforms. - Implements agent-based command routing with intelligent API fallback. - Improved security: does not post or modify content, and does not share or log API keys. - Persistent knowledge accumulation using a local SQLite database in watchlist mode.
v3.0.0-beta.1
v3 beta: intelligent query planning, cluster-first output, Perplexity Sonar Pro, GitHub person-mode, comparison mode, ELI5/fun modes, 16 sources
Metadata
Slug last30days-v3-beta
Version 3.0.0-open
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 5
Frequently Asked Questions

What is last30days?

Research any topic across Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, GitHub, Perplexity, and more. AI agent scores by upvotes, likes, an... It is an AI Agent Skill for Claude Code / OpenClaw, with 141 downloads so far.

How do I install last30days?

Run "/install last30days-v3-beta" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is last30days free?

Yes, last30days is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does last30days support?

last30days is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created last30days?

It is built and maintained by Matt Van Horn (@mvanhorn); the current version is v3.0.0-open.

💬 Comments