[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71H5R2GJP6MEVMZPYCFVQV0":3,"skill-same:01M71H5R2GJP6MEVMZPYCFVQV0":74},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M71H5R2GJP6MEVMZPYCFVQV0","blogwatcher",null,"Monitor blogs and RSS\u002FAtom feeds for updates using the blogwatcher-cli tool. Add blogs, scan for new articles, track read status, and filter by category.","0xzgbot\u002Fforge-nps-v01","0xzgbot","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F271900281?v=4","01M71GXWAFRXXJSJE3HBCVDKZY","01M71GXWBFQYRJK7M8RM6BDP0X",6,"MIT","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fprofiles\u002Fcinesmith\u002Fskills\u002Fresearch\u002Fblogwatcher\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"cli tool","github","atom","Blogs","monitor","Feed-Reader","tool","scan","for","add","status","read","cli","track","filter","monitoring","updates","new","feeds","2026-11-10 10:12:30",false,"---\nname: blogwatcher\ndescription: Monitor blogs and RSS\u002FAtom feeds for updates using the blogwatcher-cli tool. Add blogs, scan for new articles, track read status, and filter by category.\nversion: 2.0.0\nauthor: JulienTant (fork of Hyaxia\u002Fblogwatcher)\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [RSS, Blogs, Feed-Reader, Monitoring]\n    homepage: https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\nprerequisites:\n  commands: [blogwatcher-cli]\n---\n\n# Blogwatcher\n\nTrack blog and RSS\u002FAtom feed updates with the `blogwatcher-cli` tool. Supports automatic feed discovery, HTML scraping fallback, OPML import, and read\u002Funread article management.\n\n## Installation\n\nPick one method:\n\n- **Go:** `go install github.com\u002FJulienTant\u002Fblogwatcher-cli\u002Fcmd\u002Fblogwatcher-cli@latest`\n- **Docker:** `docker run --rm -v blogwatcher-cli:\u002Fdata ghcr.io\u002Fjulientant\u002Fblogwatcher-cli`\n- **Binary (Linux amd64):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_linux_amd64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (Linux arm64):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_linux_arm64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (macOS Apple Silicon):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_darwin_arm64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (macOS Intel):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_darwin_amd64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n\nAll releases: https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\n\n### Docker with persistent storage\n\nBy default the database lives at `~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db`. In Docker this is lost on container restart. Use `BLOGWATCHER_DB` or a volume mount to persist it:\n\n```bash\n# Named volume (simplest)\ndocker run --rm -v blogwatcher-cli:\u002Fdata -e BLOGWATCHER_DB=\u002Fdata\u002Fblogwatcher-cli.db ghcr.io\u002Fjulientant\u002Fblogwatcher-cli scan\n\n# Host bind mount\ndocker run --rm -v \u002Fpath\u002Fon\u002Fhost:\u002Fdata -e BLOGWATCHER_DB=\u002Fdata\u002Fblogwatcher-cli.db ghcr.io\u002Fjulientant\u002Fblogwatcher-cli scan\n```\n\n### Migrating from the original blogwatcher\n\nIf upgrading from `Hyaxia\u002Fblogwatcher`, move your database:\n\n```bash\nmv ~\u002F.blogwatcher\u002Fblogwatcher.db ~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db\n```\n\nThe binary name changed from `blogwatcher` to `blogwatcher-cli`.\n\n## Common Commands\n\n### Managing blogs\n\n- Add a blog: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com`\n- Add with explicit feed: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com --feed-url https:\u002F\u002Fexample.com\u002Ffeed.xml`\n- Add with HTML scraping: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com --scrape-selector \"article h2 a\"`\n- List tracked blogs: `blogwatcher-cli blogs`\n- Remove a blog: `blogwatcher-cli remove \"My Blog\" --yes`\n- Import from OPML: `blogwatcher-cli import subscriptions.opml`\n\n### Scanning and reading\n\n- Scan all blogs: `blogwatcher-cli scan`\n- Scan one blog: `blogwatcher-cli scan \"My Blog\"`\n- List unread articles: `blogwatcher-cli articles`\n- List all articles: `blogwatcher-cli articles --all`\n- Filter by blog: `blogwatcher-cli articles --blog \"My Blog\"`\n- Filter by category: `blogwatcher-cli articles --category \"Engineering\"`\n- Mark article read: `blogwatcher-cli read 1`\n- Mark article unread: `blogwatcher-cli unread 1`\n- Mark all read: `blogwatcher-cli read-all`\n- Mark all read for a blog: `blogwatcher-cli read-all --blog \"My Blog\" --yes`\n\n## Environment Variables\n\nAll flags can be set via environment variables with the `BLOGWATCHER_` prefix:\n\n| Variable | Description |\n|---|---|\n| `BLOGWATCHER_DB` | Path to SQLite database file |\n| `BLOGWATCHER_WORKERS` | Number of concurrent scan workers (default: 8) |\n| `BLOGWATCHER_SILENT` | Only output \"scan done\" when scanning |\n| `BLOGWATCHER_YES` | Skip confirmation prompts |\n| `BLOGWATCHER_CATEGORY` | Default filter for articles by category |\n\n## Example Output\n\n```\n$ blogwatcher-cli blogs\nTracked blogs (1):\n\n  xkcd\n    URL: https:\u002F\u002Fxkcd.com\n    Feed: https:\u002F\u002Fxkcd.com\u002Fatom.xml\n    Last scanned: 2026-04-03 10:30\n```\n\n```\n$ blogwatcher-cli scan\nScanning 1 blog(s)...\n\n  xkcd\n    Source: RSS | Found: 4 | New: 4\n\nFound 4 new article(s) total!\n```\n\n```\n$ blogwatcher-cli articles\nUnread articles (2):\n\n  [1] [new] Barrel - Part 13\n       Blog: xkcd\n       URL: https:\u002F\u002Fxkcd.com\u002F3095\u002F\n       Published: 2026-04-02\n       Categories: Comics, Science\n\n  [2] [new] Volcano Fact\n       Blog: xkcd\n       URL: https:\u002F\u002Fxkcd.com\u002F3094\u002F\n       Published: 2026-04-01\n       Categories: Comics\n```\n\n## Notes\n\n- Auto-discovers RSS\u002FAtom feeds from blog homepages when no `--feed-url` is provided.\n- Falls back to HTML scraping if RSS fails and `--scrape-selector` is configured.\n- Categories from RSS\u002FAtom feeds are stored and can be used to filter articles.\n- Import blogs in bulk from OPML files exported by Feedly, Inoreader, NewsBlur, etc.\n- Database stored at `~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db` by default (override with `--db` or `BLOGWATCHER_DB`).\n- Use `blogwatcher-cli \u003Ccommand> --help` to discover all flags and options.\n","# Blogwatcher\n\nTrack blog and RSS\u002FAtom feed updates with the `blogwatcher-cli` tool. Supports automatic feed discovery, HTML scraping fallback, OPML import, and read\u002Funread article management.\n\n## Installation\n\nPick one method:\n\n- **Go:** `go install github.com\u002FJulienTant\u002Fblogwatcher-cli\u002Fcmd\u002Fblogwatcher-cli@latest`\n- **Docker:** `docker run --rm -v blogwatcher-cli:\u002Fdata ghcr.io\u002Fjulientant\u002Fblogwatcher-cli`\n- **Binary (Linux amd64):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_linux_amd64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (Linux arm64):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_linux_arm64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (macOS Apple Silicon):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_darwin_arm64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n- **Binary (macOS Intel):** `curl -sL https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\u002Flatest\u002Fdownload\u002Fblogwatcher-cli_darwin_amd64.tar.gz | tar xz -C \u002Fusr\u002Flocal\u002Fbin blogwatcher-cli`\n\nAll releases: https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli\u002Freleases\n\n### Docker with persistent storage\n\nBy default the database lives at `~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db`. In Docker this is lost on container restart. Use `BLOGWATCHER_DB` or a volume mount to persist it:\n\n```bash\n# Named volume (simplest)\ndocker run --rm -v blogwatcher-cli:\u002Fdata -e BLOGWATCHER_DB=\u002Fdata\u002Fblogwatcher-cli.db ghcr.io\u002Fjulientant\u002Fblogwatcher-cli scan\n\n# Host bind mount\ndocker run --rm -v \u002Fpath\u002Fon\u002Fhost:\u002Fdata -e BLOGWATCHER_DB=\u002Fdata\u002Fblogwatcher-cli.db ghcr.io\u002Fjulientant\u002Fblogwatcher-cli scan\n```\n\n### Migrating from the original blogwatcher\n\nIf upgrading from `Hyaxia\u002Fblogwatcher`, move your database:\n\n```bash\nmv ~\u002F.blogwatcher\u002Fblogwatcher.db ~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db\n```\n\nThe binary name changed from `blogwatcher` to `blogwatcher-cli`.\n\n## Common Commands\n\n### Managing blogs\n\n- Add a blog: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com`\n- Add with explicit feed: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com --feed-url https:\u002F\u002Fexample.com\u002Ffeed.xml`\n- Add with HTML scraping: `blogwatcher-cli add \"My Blog\" https:\u002F\u002Fexample.com --scrape-selector \"article h2 a\"`\n- List tracked blogs: `blogwatcher-cli blogs`\n- Remove a blog: `blogwatcher-cli remove \"My Blog\" --yes`\n- Import from OPML: `blogwatcher-cli import subscriptions.opml`\n\n### Scanning and reading\n\n- Scan all blogs: `blogwatcher-cli scan`\n- Scan one blog: `blogwatcher-cli scan \"My Blog\"`\n- List unread articles: `blogwatcher-cli articles`\n- List all articles: `blogwatcher-cli articles --all`\n- Filter by blog: `blogwatcher-cli articles --blog \"My Blog\"`\n- Filter by category: `blogwatcher-cli articles --category \"Engineering\"`\n- Mark article read: `blogwatcher-cli read 1`\n- Mark article unread: `blogwatcher-cli unread 1`\n- Mark all read: `blogwatcher-cli read-all`\n- Mark all read for a blog: `blogwatcher-cli read-all --blog \"My Blog\" --yes`\n\n## Environment Variables\n\nAll flags can be set via environment variables with the `BLOGWATCHER_` prefix:\n\n| Variable | Description |\n|---|---|\n| `BLOGWATCHER_DB` | Path to SQLite database file |\n| `BLOGWATCHER_WORKERS` | Number of concurrent scan workers (default: 8) |\n| `BLOGWATCHER_SILENT` | Only output \"scan done\" when scanning |\n| `BLOGWATCHER_YES` | Skip confirmation prompts |\n| `BLOGWATCHER_CATEGORY` | Default filter for articles by category |\n\n## Example Output\n\n```\n$ blogwatcher-cli blogs\nTracked blogs (1):\n\n  xkcd\n    URL: https:\u002F\u002Fxkcd.com\n    Feed: https:\u002F\u002Fxkcd.com\u002Fatom.xml\n    Last scanned: 2026-04-03 10:30\n```\n\n```\n$ blogwatcher-cli scan\nScanning 1 blog(s)...\n\n  xkcd\n    Source: RSS | Found: 4 | New: 4\n\nFound 4 new article(s) total!\n```\n\n```\n$ blogwatcher-cli articles\nUnread articles (2):\n\n  [1] [new] Barrel - Part 13\n       Blog: xkcd\n       URL: https:\u002F\u002Fxkcd.com\u002F3095\u002F\n       Published: 2026-04-02\n       Categories: Comics, Science\n\n  [2] [new] Volcano Fact\n       Blog: xkcd\n       URL: https:\u002F\u002Fxkcd.com\u002F3094\u002F\n       Published: 2026-04-01\n       Categories: Comics\n```\n\n## Notes\n\n- Auto-discovers RSS\u002FAtom feeds from blog homepages when no `--feed-url` is provided.\n- Falls back to HTML scraping if RSS fails and `--scrape-selector` is configured.\n- Categories from RSS\u002FAtom feeds are stored and can be used to filter articles.\n- Import blogs in bulk from OPML files exported by Feedly, Inoreader, NewsBlur, etc.\n- Database stored at `~\u002F.blogwatcher-cli\u002Fblogwatcher-cli.db` by default (override with `--db` or `BLOGWATCHER_DB`).\n- Use `blogwatcher-cli \u003Ccommand> --help` to discover all flags and options.\n",{"name":5,"author":42,"license":14,"version":43,"metadata":44,"description":7,"prerequisites":50},"JulienTant (fork of Hyaxia\u002Fblogwatcher)","2.0.0",{"hermes":45},{"tags":46,"homepage":49},[47,21,23,48],"RSS","Monitoring","https:\u002F\u002Fgithub.com\u002FJulienTant\u002Fblogwatcher-cli",{"commands":51},[52],"blogwatcher-cli","master","a76a61826887171cb38ce217ae85643d5d7685d1","hermes_home\u002Fprofiles\u002Fcinesmith\u002Fskills\u002Fresearch\u002Fblogwatcher",2,"https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01","https:\u002F\u002Fgithub.com\u002F0xzgbot","2026-08-31 09:13:28",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add 0xzgbot\u002Fforge-nps-v01 --skill blogwatcher",{"tool":66,"command":67},"bunx","bunx skills add 0xzgbot\u002Fforge-nps-v01 --skill blogwatcher",{"tool":69,"command":70},"pnpm","pnpm dlx skills add 0xzgbot\u002Fforge-nps-v01 --skill blogwatcher","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fprofiles\u002Fcinesmith\u002Fskills\u002Fresearch\u002Fblogwatcher\u002FSKILL.md",true,[],[75,88,110,124,135,147],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":37},"01M71J5TFCV7K97773JYZE7ET8","yuanbao","Yuanbao (元宝) groups: @mention users, query info\u002Fmembers.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fyuanbao\u002FSKILL.md",[],[77,82,83,84,85,86,87],"groups","at","info","users","query","group",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":102,"publishedAt":37},"01M71J5QR69MCT5J8P3B4Y9ZHA","workflow-ltx-i2v","Use when the task involves workflow ltx i2v. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fworkflow_ltx_i2v\u002FSKILL.md",[94,99],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109],"ltx","workflow ltx i2v","workflow","Production","task","when","use",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":118,"publishedAt":37},"01M71J5NYW853AAPB17VR0F7ZX","workflow-flux2-text-to-image","Flux2 Text-to-Image Workflow Reference.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fworkflow_flux2_text_to_image\u002FSKILL.md",[116,117],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},[119,120,105,121,122,106,123],"workflow flux2 text to image","image","text","reference","Text-to-Image",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":37},"01M71J5KWY96MD6B6YC2XP6NXB","wide-angle-environmental","Use when the task involves wide angle environmental. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fwide_angle_environmental\u002FSKILL.md",[130],{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},[132,133,134,106,107,108,109],"environmental","wide","wide angle environmental",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":142,"publishedAt":37},"01M71J5DXHECTDVDF8HRP81YFY","wes-anderson-specialist","Use when the task involves wes anderson specialist. 1. EXECUTIVE SUMMARY.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fwes_anderson_specialist\u002FSKILL.md",[141],{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},[143,144,145,146,108,109,107,106],"specialist","wes anderson specialist","summary","executive summary",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":37},"01M71J5BRHX2N4BRG2VQMWJK3E","volumetric-god-rays-lighting","Use when the task involves volumetric god rays lighting. DESCRIPTION.","https:\u002F\u002Fgithub.com\u002F0xzgbot\u002Fforge-nps-v01\u002Fblob\u002Fmaster\u002Fhermes_home\u002Fskills\u002Fvolumetric_god_rays_lighting\u002FSKILL.md",[153],{"categoryNo":100,"categoryName":101,"taxonomyType":97,"taxonomyTypeDesc":98},[155,156,109,108,107,106],"volumetric god rays lighting","lighting"]