| 1 | # Hermes Setup Guide for last30days |
| 2 | |
| 3 | This guide covers installing last30days on Hermes AI Agent. |
| 4 | |
| 5 | ## Prerequisites |
| 6 | |
| 7 | 1. **Hermes installed** - See https://github.com/NousResearch/hermes-agent |
| 8 | 2. **Python 3.12+** - `brew install python@3.12` or similar |
| 9 | 3. **yt-dlp** (optional, for YouTube) - `brew install yt-dlp` |
| 10 | |
| 11 | ## Installation |
| 12 | |
| 13 | ```bash |
| 14 | git clone https://github.com/mvanhorn/last30days-skill.git |
| 15 | mkdir -p ~/.hermes/skills/research |
| 16 | cp -r last30days-skill/skills/last30days ~/.hermes/skills/research/ |
| 17 | ``` |
| 18 | |
| 19 | That deploys the skill straight from this repo's current default branch to `~/.hermes/skills/research/last30days` (with named profiles the skills root is `~/.hermes/profiles/<name>/skills/`). Run `hermes skills list` to confirm it shows up; a session already open needs `/reload-skills` (or a new session) to pick it up. |
| 20 | |
| 21 | > **Why not `hermes skills install`?** The installer is currently blocked for this skill. Hermes's install-time security scanner flags benign patterns here — reading your own API keys from the environment (`os.environ.get("XAI_API_KEY")` etc.) and calling `subprocess` to run `yt-dlp`/`bird` — and returns a `dangerous` verdict (19 findings). `--force` only overrides a `caution` verdict; for community sources a `dangerous` verdict is a hard block that `--force` cannot bypass: |
| 22 | > |
| 23 | > ```bash |
| 24 | > hermes skills install mvanhorn/last30days-skill/skills/last30days --force |
| 25 | > # → Installation blocked: Blocked (community source + dangerous verdict, 19 findings) |
| 26 | > ``` |
| 27 | > |
| 28 | > The `git clone` + `cp` path above sidesteps the installer and is the supported workaround until the scanner rules or this skill's flagged patterns change. (The shorter `hermes skills install mvanhorn/last30days-skill` additionally resolves through the skills.sh index, which was serving a stale snapshot — tracked in [vercel-labs/skills#1602](https://github.com/vercel-labs/skills/issues/1602).) |
| 29 | |
| 30 | ### Developer / live-edit alternative |
| 31 | |
| 32 | If you're hacking on the skill locally and want edits to propagate to Hermes without re-copying, symlink your working tree instead of `cp`: |
| 33 | |
| 34 | ```bash |
| 35 | git clone https://github.com/mvanhorn/last30days-skill.git |
| 36 | mkdir -p ~/.hermes/skills/research |
| 37 | ln -s "$(pwd)/last30days-skill/skills/last30days" ~/.hermes/skills/research/last30days |
| 38 | ``` |
| 39 | |
| 40 | ## Usage |
| 41 | |
| 42 | In Hermes, invoke with: |
| 43 | |
| 44 | ``` |
| 45 | last30days "your research topic" |
| 46 | ``` |
| 47 | |
| 48 | Or with options: |
| 49 | ``` |
| 50 | last30days "best mechanical keyboards 2025" --search=reddit,youtube |
| 51 | last30days "AI news" --days=7 --deep |
| 52 | ``` |
| 53 | |
| 54 | ## First Run Setup |
| 55 | |
| 56 | On first run, the skill will guide you through setup: |
| 57 | |
| 58 | 1. **Auto setup** (~30 seconds) |
| 59 | - Scans browser cookies for X/Twitter |
| 60 | - Checks/installs yt-dlp for YouTube |
| 61 | - Best-effort install of `digg-pp-cli` for Digg AI-news clusters (via `@mvanhorn/printing-press-library`; binary lands in `$HOME/.local/bin` — ensure your Hermes gateway PATH includes it, or Digg stays off even after install) |
| 62 | - Configures free sources (Reddit, HN, Polymarket) |
| 63 | |
| 64 | 2. **Optional: ScrapeCreators** |
| 65 | - Adds TikTok, Instagram, Reddit backup |
| 66 | - 100 free credits (no expiration) |
| 67 | - Sign up at scrapecreators.com |
| 68 | |
| 69 | 3. **Optional: API Keys** |
| 70 | - XAI_API_KEY for X/Twitter (alternative to browser cookies) |
| 71 | - BRAVE_API_KEY for web search |
| 72 | |
| 73 | ## Available Sources |
| 74 | |
| 75 | ### Free (No API Key) |
| 76 | - **Reddit** - Public discussions and comments |
| 77 | - **Hacker News** - Tech discussions via Algolia |
| 78 | - **Polymarket** - Prediction markets |
| 79 | - **YouTube** - Search and transcripts (requires yt-dlp) |
| 80 | - **Digg** - AI-news story clusters (requires `digg-pp-cli` on the agent PATH; auto-installed to `$HOME/.local/bin` during setup when `npx` is available) |
| 81 | |
| 82 | ### Requires API Key |
| 83 | - **X/Twitter** - xAI API key or browser cookies |
| 84 | - **TikTok** - ScrapeCreators API |
| 85 | - **Instagram** - ScrapeCreators API |
| 86 | - **Web Search** - Brave Search API |
| 87 | |
| 88 | ## Troubleshooting |
| 89 | |
| 90 | ### Python not found |
| 91 | ```bash |
| 92 | # Find Python 3.12+ |
| 93 | which python3.12 python3.13 python3.14 |
| 94 | |
| 95 | # If not installed |
| 96 | brew install python@3.12 |
| 97 | ``` |
| 98 | |
| 99 | ### yt-dlp not found |
| 100 | ```bash |
| 101 | brew install yt-dlp |
| 102 | # or |
| 103 | pip install yt-dlp |
| 104 | ``` |
| 105 | |
| 106 | ### Check what's configured |
| 107 | ```bash |
| 108 | cd ~/.hermes/skills/research/last30days |
| 109 | python3.12 scripts/last30days.py --diagnose |
| 110 | ``` |
| 111 | |
| 112 | ## Updating |
| 113 | |
| 114 | If you symlinked your working tree (developer alternative above), just `git pull` in the repo — edits propagate live, no re-install step. With a `cp` install, pull and re-copy: |
| 115 | |
| 116 | ```bash |
| 117 | cd last30days-skill && git pull |
| 118 | cp -r skills/last30days ~/.hermes/skills/research/ |
| 119 | ``` |
| 120 | |
| 121 | `hermes skills install mvanhorn/last30days-skill --force` remains blocked by the scanner verdict above; retry it occasionally in case the flagged patterns or scanner rules change. |
| 122 | |
| 123 | ## Support |
| 124 | |
| 125 | - Original repo: https://github.com/mvanhorn/last30days-skill |
| 126 | - Hermes: https://github.com/mercurial-tf/hermes |
| 127 | - Issues: Please report in the original repo |
| 128 |