List all configured event sources (Instagram, web aggregators)
Lists all configured event sources (Instagram accounts and web aggregators) from your local config file. Use when you need to review or verify which sources are currently set up for event collection.
/plugin marketplace add aniketpanjwani/local_media_tools/plugin install newsletter-events@local-media-toolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
<essential_principles>
All sources are stored in ~/.config/local-media-tools/sources.yaml.
| Type | Filter Keyword | Description |
|---|---|---|
instagram, ig | @handle accounts | |
| Web | web | Event aggregator websites |
Note: Facebook events are not configured sources. Pass event URLs directly to /research.
Sources are displayed in grouped tables with relevant metadata for each type. </essential_principles>
<intake> What sources do you want to list?Options:
all or blank - Show all configured sourcesinstagram - Only Instagram accountsweb - Only web aggregatorsProvide filter (or press Enter for all): </intake>
<process> ## Step 1: Parse FilterCheck if user provided a filter keyword:
filter_input = user_input.strip().lower()
# Normalize filter aliases
filter_map = {
"": "all",
"all": "all",
"instagram": "instagram",
"ig": "instagram",
"web": "web",
}
selected_filter = filter_map.get(filter_input, "all")
from pathlib import Path
import yaml
config_path = Path.home() / ".config" / "local-media-tools" / "sources.yaml"
if not config_path.exists():
print("ERROR: sources.yaml not found. Run /newsletter-events:setup first.")
# STOP HERE
with open(config_path) as f:
config = yaml.safe_load(f)
sources = config.get("sources", {})
instagram_accounts = sources.get("instagram", {}).get("accounts", [])
web_sources = sources.get("web_aggregators", {}).get("sources", [])
total_sources = len(instagram_accounts) + len(web_sources)
if total_sources == 0:
print("No sources configured.")
print("")
print("To add sources: /newsletter-events:add-source @handle")
# STOP HERE
Display each category with appropriate columns:
Instagram Accounts:
| Handle | Name | Type | Location |
|---|---|---|---|
| @localvenue | Local Venue | music_venue | Kingston, NY |
| @themusicbar | The Music Bar | bar | - |
Web Aggregators:
| URL | Name | Type | Max Pages |
|---|---|---|---|
| https://hvmag.com/events | HV Magazine | listing | 50 |
Total: N sources configured
- Instagram: X accounts
- Web: Y aggregators
To add sources: /newsletter-events:add-source @handle
To remove sources: /newsletter-events:remove-source @handle
Note: For Facebook events, pass URLs directly to /research
If a filter was applied but that category is empty:
No instagram sources found.
You have:
- 1 web aggregator
To add Instagram accounts: /newsletter-events:add-source @handle
</process>
<success_criteria>
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.