wachi

Install, configure, and use the wachi CLI to monitor any URL for new content and get notifications via 90+ services (Slack, Discord, Telegram, email, etc.). Use when the user wants to: (1) subscribe to web pages, blogs, YouTube channels, or RSS feeds for change notifications, (2) set up URL monitoring with wachi sub/check/ls commands, (3) configure notification channels via apprise URLs, (4) schedule periodic checks with cron, (5) troubleshoot wachi errors or configuration, or (6) understand how wachi detects changes (RSS auto-discovery, LLM-based CSS selectors).

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "wachi" with this command: npx skills add ysm-dev/skills/ysm-dev-skills-wachi

wachi

Subscribe any link and get notified on change. Monitors URLs for new content, pushes notifications to 90+ services via apprise.

Install

# npm / bun (no install needed)
npx wachi --help
bunx wachi --help

# global install
npm i -g wachi
bun i -g wachi

# shell script
curl -fsSL https://raw.githubusercontent.com/ysm-dev/wachi/main/install.sh | sh

# homebrew
brew tap ysm-dev/tap && brew install wachi

Quick Start

# 1. Subscribe to any URL (auto-discovers RSS)
wachi sub "slack://xoxb-token/channel" "https://blog.example.com"

# 2. Check for new content (run on a schedule)
wachi check

# New posts get pushed to Slack. That's it.

Commands

wachi sub <apprise-url> <url>     Subscribe URL to notification channel
  -e, --send-existing             Send all current items on next check (skip baseline)

wachi unsub <apprise-url> [url]   Unsubscribe URL or remove entire channel

wachi ls                          List all channels and subscriptions

wachi check                       Check all subscriptions for changes
  -c, --channel <apprise-url>     Check specific channel only
  -n, --concurrency <number>      Max concurrent checks (default: 10)
  -d, --dry-run                   Preview without sending or recording

wachi test <apprise-url>          Send test notification

wachi upgrade                     Update wachi to latest version

Global flags: --json / -j for machine-readable output, --verbose / -V for detailed logs, --config / -C for custom config path.

How It Works

  1. wachi sub checks if the URL has an RSS feed (auto-discovery via <link> tags and common paths)
  2. If RSS found: store and use RSS for ongoing checks
  3. If no RSS: use LLM + agent-browser to identify CSS selectors via accessibility tree analysis
  4. wachi check fetches each subscription, compares against dedup table (SHA-256 hash), sends new items via apprise

Configuration

Config at ~/.config/wachi/config.yml (auto-created on first wachi sub).

# LLM config (only needed for non-RSS sites)
# Also settable via WACHI_LLM_API_KEY, WACHI_LLM_MODEL env vars
llm:
  api_key: "sk-..."
  model: "gpt-4.1-mini"

# Optional: summarize articles before sending
summary:
  enabled: true
  language: "en"
  min_reading_time: 3  # minutes

# Channels managed by wachi sub/unsub
channels:
  - apprise_url: "slack://xoxb-token/channel"
    subscriptions:
      - url: "https://blog.example.com"
        rss_url: "https://blog.example.com/feed.xml"

All fields optional with sensible defaults. Empty config is valid.

Environment Variables

VariablePurpose
WACHI_LLM_API_KEYLLM API key
WACHI_LLM_MODELLLM model name
WACHI_LLM_BASE_URLLLM API base URL (default: OpenAI)
WACHI_NO_AUTO_UPDATESet to 1 to disable auto-update

Notification Channels

Uses apprise URL format. Examples:

# Slack
wachi sub "slack://xoxb-token/channel" "https://example.com"

# Discord
wachi sub "discord://webhook-id/token" "https://example.com"

# Telegram
wachi sub "tgram://bot-token/chat-id" "https://example.com"

# Test channel works
wachi test "slack://xoxb-token/channel"

Full list: https://github.com/caronc/apprise/wiki

Scheduling

wachi check is stateless and one-shot. Use any scheduler:

# crnd (recommended)
crnd "*/5 * * * *" wachi check

# system cron
crontab -e
# */5 * * * * wachi check

Examples

# Blog (auto-discovers RSS)
wachi sub "slack://xoxb-token/channel" "https://blog.example.com"

# Hacker News (LLM identifies selectors)
wachi sub "discord://webhook-id/token" "https://news.ycombinator.com"

# YouTube channel
wachi sub "tgram://bot-token/chat-id" "https://youtube.com/@channel"

# URL without https:// (auto-prepended)
wachi sub "slack://token/channel" "blog.example.com"

# Send existing items on next check
wachi sub -e "discord://webhook-id/token" "https://news.ycombinator.com"

# Dry-run check
wachi check -d

# Check specific channel
wachi check -c "slack://xoxb-token/channel"

For detailed behavior (dedup model, error patterns, notification format, config schema), see references/spec.md.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

duckdb-cli

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

Repository SourceNeeds Review
94.2K160.3K
anthropics
Coding

remotion-best-practices

Use this skills whenever you are dealing with Remotion code to obtain the domain-specific knowledge.

Repository SourceNeeds Review
2.1K147.9K
remotion-dev