This skill helps AI agents fetch updates and content from websites using the airsstool CLI.
Use this skill when the user:
Before using airsstool, ensure the following prerequisites are met. Ask the user for permission when needed (e.g., deploying RSSHub via Docker, choosing a Python environment, setting environment variables).
Check if the user already has a running RSSHub Docker container. If not:
rsshub folder in a suitable locationdocker-compose.yml in the rsshub folder.env file for environment variablesdocker-compose.yml to add Puppeteer support if needed, and add env_file: - .env to the rsshub servicedocker compose up -dFollow the instructions at https://github.com/heqi201255/airsstool
Ask the user if they want to install Python dependencies in a specific virtual environment. If yes, remember to activate that environment before each use.
After installation, run the init command (takes ~1min):
bash
airsstool init
This creates the database at ~/.airsstool/airsstoolDB.db by default. Use --db-path for a custom location.
After installation is complete and verified working, you may delete this installation section in this file.
CommandPurposeairsstool initInitialize database (first time setup)airsstool init --db-path PATHInitialize with custom database pathairsstool init --forceForce recreate database
CommandPurposeExample Usageairsstool list categoriesList all content categories"What categories are available?"airsstool list websitesList websites by category"Show me social media websites"airsstool list routes <website>Find available feeds for a website"What feeds does GitHub have?"airsstool check <website> <route>Get feed details & parameters"How to use GitHub trending?"
CommandPurposeExample Usageairsstool fetch <path>Fetch content from a feed"Get GitHub trending"airsstool fetch -U <user> -S <sub>Fetch all feeds in a subscription"Get all my tech news feeds"
CommandPurposeExample Usageairsstool list usersList all users"Who has subscriptions?"airsstool list subscriptions -U <user>List user's subscription groups"Show alice's subscriptions"airsstool list paths -U <user> -S <name>List paths in a subscription"What's in tech_news group?"airsstool add-subscription -U <user> -S <name>Create subscription group"Create a news subscription"airsstool subscribe -U <user> -S <name> -P <path> -D <desc>Add path to subscription"Subscribe to GitHub trending"airsstool unsubscribe -U <user> -S <name>Delete subscription group"Delete my tech_news group"airsstool remove-subscription -U <user> -S <name> -P <path>Remove path from subscription"Remove GitHub trending from tech_news"
Browse by category if you know the type: bash
airsstool list categories
airsstool list websites --category programming --page-size 10
Search by website name (fuzzy search supported): bash
airsstool list routes github # Returns all GitHub feeds
Check feed details for parameters: bash
airsstool check github trending
# Shows path template: /github/trending/{params}
Simple fetch:
bash
airsstool fetch /github/trending/daily/any/en
With filters:
bash
airsstool fetch /youtube/user/@MrBeast --filter "MrBeast|Beast"
With format conversion:
bash
airsstool fetch /hackernews/best --format rss # Returns raw RSS
airsstool fetch /instagram/user/instagram --brief 100 # Returns brief text
Pagination:
bash
airsstool fetch /github/trending/daily/any/en --limit 5 --offset 2
Create a subscription group:
bash
airsstool add-subscription -U your_name -S tech_news
Add feeds to subscription:
bash
airsstool subscribe -U your_name -S tech_news -P /github/trending/daily/any/en -D "GitHub Trending"
Fetch subscription:
bash
airsstool fetch -U your_name -S tech_news --limit 10
OptionDescription--category CATFilter websites by category--page-size NNumber of results per page (default: 20)--page-num NPage number (default: 1)--enable-nsfwInclude NSFW websites in results
OptionDescription--filter PATTERNFilter title and description (regex)--filter-title PATTERNFilter title only--filter-description PATTERNFilter description only--filter-author PATTERNFilter by author--filter-category PATTERNFilter by category--filter-time SECONDSTime range in seconds--filterout PATTERNExclude from title and description--filterout-title PATTERNExclude from title--filterout-description PATTERNExclude from description--filterout-author PATTERNExclude author--filterout-category PATTERNExclude category--filter-case-sensitive BOOLCase sensitivity (default: true)
OptionDescription--format FORMATOutput format: markdown (default), rss, atom, json, rss3. Default is Markdown - don't specify unless needed.--brief NBrief text with N chars (>=100)--limit NLimit number of items--offset NSkip first N items (only works with markdown format)
Fuzzy search works: airsstool list routes gthub will suggest "GitHub"
Path format: Always start with /, e.g., /github/trending/daily/any/en
Check route details first: Use airsstool check <website> <route> to understand required parameters
Default output is Markdown: Parsed and formatted for readability. Use --format rss for raw RSS.
Subscription persistence: Subscriptions are stored in SQLite database for persistence
User: "Find me some programming news feeds"
bash
airsstool list websites --category programming --page-size 5
# Returns top programming sites by heat
airsstool list routes github
# Returns available GitHub routes
airsstool check github trending
# Shows how to construct the path
User: "Get the latest trending JavaScript repos"
bash
airsstool fetch /github/trending/daily/any/en --limit 10
# Returns formatted Markdown with repo info
User: "Create a subscription for my daily tech reading"
bash
airsstool add-subscription -U user -S daily_tech
airsstool subscribe -U user -S daily_tech -P /github/trending/daily/any/en -D "GitHub Trending JS"
airsstool subscribe -U user -S daily_tech -P /hackernews/best -D "Hacker News"
airsstool fetch -U user -S daily_tech --limit 5
User: "Remove a specific feed from my subscription"
bash
airsstool list paths -U user -S daily_tech
# Shows all feeds in the subscription
airsstool remove-subscription -U user -S daily_tech -P /hackernews/best
# Removes only Hacker News, keeps other feeds
User: "Delete my entire subscription group"
⚠️ This action cannot be undone. Ask the user to confirm before proceeding:
bash
airsstool unsubscribe -U user -S daily_tech
# Deletes the group and all its feeds
airsstool check <website> <route> to see if there's a RequireConfig note. If so, the website requires environment variables. Search online for how to obtain them and ask the user for help. Once obtained, add them to the .env file and restart the RSSHub service--force flag in airsstool subscribe to skip connectivity check