A Claude Code skill that fetches today's AI news from multiple sources and generates a bilingual (English + Chinese) HTML newspaper — in two design styles.
Built as a Claude Code skill so it runs directly inside your AI assistant workflow.
Every day, run one command in Claude Code:
"today's daily brief" / "今天的 AI 日报"
Claude will:
- Fetch today's AI news from Anthropic, OpenAI, Claude Blog, The AI Valley, smol.ai, Every.to newsletters
- Pull the latest videos from 10 AI YouTube channels
- Scrape top posts from 18 AI accounts on X.com (filtered for AI relevance)
- Save a bilingual Markdown digest
- Ask if you want an HTML newspaper — in Rationalist or Modernism style (or both)
Inspired by Works in Progress — academic editorial feel, serif + monospace fonts, warm off-white background, sticky hero image, bilingual toggle.
Inspired by Monocle — minimal black and white, large EB Garamond masthead that shrinks on scroll, 4-column YouTube card grid, 2-column X.com feed, bilingual toggle.
- Claude Code (the CLI)
- Python 3.9+
- twscrape for X.com scraping:
pip install --upgrade "twscrape @ git+https://github.com/vladkens/twscrape.git" - An X.com account with valid session cookies (
auth_token+ct0)
Option 1 — Plugin marketplace (recommended)
Step 1 — Add the marketplace source:
/plugin marketplace add https://github.com/jazzleg66/AI-Daily
Step 2 — Install the skill:
/plugin install ai-daily@ai-daily
Claude Code downloads and registers the skill automatically. Generated files go to ~/.claude/ai-daily/output/ on first run.
Use the full HTTPS URL — the shorthand
owner/repoform may attempt SSH and fail if you don't have SSH keys configured for GitHub.
Option 2 — Manual copy
# macOS / Linux
git clone https://github.com/jazzleg66/AI-Daily.git
mkdir -p ~/.claude/skills
cp -r AI-Daily/skills/ai-daily ~/.claude/skills/ai-daily
# Windows
git clone https://github.com/jazzleg66/AI-Daily.git
mkdir "%USERPROFILE%\.claude\skills" 2>nul
xcopy /E /I "AI-Daily\skills\ai-daily" "%USERPROFILE%\.claude\skills\ai-daily"Option 3 — Other AI coding agents
Clone the repo and point your agent at skills/ai-daily/SKILL.md as context. Set <BASE> to the skills/ai-daily/ directory path.
After installing: install dependencies and configure X.com credentials
Install the X.com scraping library:
pip install --upgrade "twscrape @ git+https://github.com/vladkens/twscrape.git"Then create the credentials file:
# macOS / Linux
mkdir -p ~/.claude/private
cat > ~/.claude/private/x-creds.json << 'EOF'
{
"auth_token": "your_auth_token_here",
"ct0": "your_ct0_here"
}
EOF# Windows
mkdir "%USERPROFILE%\.claude\private" 2>nul
echo {"auth_token": "your_auth_token_here", "ct0": "your_ct0_here"} > "%USERPROFILE%\.claude\private\x-creds.json"Replace your_auth_token_here and your_ct0_here with your actual cookies: log into x.com in a browser, open DevTools → Application → Cookies → copy auth_token and ct0.
After installing, invoke the skill in Claude Code with the slash command:
/ai-daily:ai-daily
Or just say it in plain language:
today's daily brief
今天的 AI 日报
Claude will run the fetch scripts, show you a summary, save a Markdown file, and ask if you want the HTML newspaper.
This skill can also be used with other AI coding agents (Cursor, Windsurf, etc.) by referencing the SKILL.md directly from the repo:
skills/ai-daily/SKILL.md
Point your agent at that file as a system prompt or context document. Scripts and assets are referenced via <BASE> — set that to the skills/ai-daily/ directory.
- News: Edit
fetch_news.pyto add or remove sites - YouTube channels: Edit
CHANNELSinfetch_youtube.py - X.com accounts: Edit
X_ACCOUNTSinfetch_x.py - AI keyword filter: Edit
AI_KEYWORDSinfetch_x.pyto tune what counts as AI-relevant
AI-Daily/
├── .claude-plugin/
│ ├── marketplace.json # Plugin marketplace catalog
│ └── plugin.json # Plugin manifest
├── .gitignore
├── README.md
├── resources.md # Source list
├── skills/
│ └── ai-daily/
│ ├── SKILL.md # Skill definition — Claude reads this
│ ├── scripts/
│ │ ├── fetch_news.py # Fetches Anthropic, OpenAI, blogs, newsletters
│ │ ├── fetch_youtube.py # Fetches AI YouTube channels via RSS
│ │ └── fetch_x.py # Fetches X.com posts via twscrape
│ ├── assets/
│ │ ├── rationalist/
│ │ │ ├── template.html # Rationalist HTML template
│ │ │ ├── spotlight.jpg # Hero image (Spotlight section)
│ │ │ └── youtubepicks.jpg # Hero image (YouTube section)
│ │ └── modernism/
│ │ ├── template.html # Modernism HTML template
│ │ ├── spotlight.png # Hero image (Spotlight section)
│ │ └── youtubepicks.png # Hero image (YouTube section)
│ └── output/ # Seed images only (tracked); generated files go to ~/.claude/ai-daily/output/
│ ├── spotlight.jpg
│ ├── youtubepicks.jpg
│ ├── spotlight.png
│ └── youtubepicks.png
└── screenshots/
├── rationalist-preview.jpeg
└── modernism-preview.jpeg
Generated files (daily-brief-*.md, r-brief-*.html, m-brief-*.html) are saved to ~/.claude/ai-daily/output/ — outside the plugin, so they persist across updates and are easy to find.
git clone fails with "Connection was reset" (China users)
Your browser can reach GitHub but git doesn't route through your VPN/proxy by default. Fix:
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890Replace 7890 with your proxy's actual port (Clash default: 7890, V2Ray: 1080 or 10809). Then retry git clone.
To unset later: git config --global --unset http.proxy && git config --global --unset https.proxy
- Modernism style — layout and typography inspired by Monocle
- Rationalist style — layout and typography inspired by Works in Progress
MIT

