daily-news-60s — Claude Code skill: 15 daily headlines
Pulls 15 curated headlines and a daily quote from the 60s API and hands them to your agent. Handy for a morning briefing in Chinese without opening a browser.
npx skills add vikiboss/60s-skills --skill daily-news-60s -a claude-codeWhat daily-news-60s does
The skill spells out how an agent should call https://60s.viki.moe/v2/60s with GET. What comes back is JSON: the date, weekday, lunar date, a list of 15 news items with links, and a short quote for the day. Pass date as YYYY-MM-DD to pull a specific day's edition, or set encoding to json, text, markdown, image or image-proxy depending on what you want out.
No API key, no signup. The feed refreshes every 30 minutes. Ask for a date with no data and the service falls back across the last 3 days on its own, so an empty result for an old date is expected behaviour. Images via encoding=image can fail to load; the documented workaround is image-proxy, which streams the binary back directly.
Python snippets using requests ship with the skill: one builds a morning message for a bot, another returns the first few headlines as a summary, a third looks up an archived date. The response shape is stable, so parsing is straightforward. Everything in the feed is Chinese.
What it helps with
- build a morning news message for a bot
- grab the day's 15 headlines in one call
- fetch the edition for a chosen date
- render the news as markdown or an image
- attach the daily quote to a message
Example prompts for the agent
- What's in the news today? Give me the 60s briefing
- Show me the news for 2024-01-15 as markdown
- Summarise the first five headlines and add the 微语
How to install daily-news-60s
1Skills CLI (Vercel)
npx skills add vikiboss/60s-skills --skill daily-news-60s -a claude-code2Manually: put the files in place
~/.claude/skills/daily-news-60s/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/daily-news-60s/
1Skills CLI (Vercel)
npx skills add vikiboss/60s-skills --skill daily-news-60s -a codex2Manually: put the files in place
.agents/skills/daily-news-60s/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add vikiboss/60s-skills --skill daily-news-60s -a cursor2Manually: put the files in place
.cursor/skills/daily-news-60s/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install vikiboss/60s-skills daily-news-60s2Manually: put the files in place
.github/skills/daily-news-60s/SKILL.md1Skills CLI (Vercel)
npx skills add vikiboss/60s-skills --skill daily-news-60s -a gemini-cli2Platform CLI
gemini skills install https://github.com/vikiboss/60s-skills --path skills/daily-news-60sManually: put the files in place
.devin/skills/daily-news-60s/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add vikiboss/60s-skills --skill daily-news-60s -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about daily-news-60s
How do I install daily-news-60s in Claude Code?
Run npx skills add vikiboss/60s-skills --skill daily-news-60s -a claude-code. The skill file then sits at ~/.claude/skills/daily-news-60s/SKILL.md.
What does daily-news-60s do?
It fetches a 15-item news edition plus the daily quote from the 60s API and presents them to your agent. You can ask for a particular date or a different output format.
Does it need an API key?
No. The endpoint https://60s.viki.moe/v2/60s is open and takes a plain GET request.
Source text
SKILL.md · MIT
---
name: daily-news-60s
description: 获取每天60秒读懂世界的每日新闻,包含15条精选国内外新闻和每日微语。Use when users need daily news summaries, current events, or want to stay informed about world news in Chinese.
license: MIT
metadata:
author: vikiboss
version: "1.0"
api_base: https://60s.viki.moe/v2
tags:
- news
- daily
- china
- information
---
# 每天60秒读懂世界 - Daily News Skill
This skill helps AI agents fetch and present daily curated news from the 60s API, which provides 15 selected news items plus a daily quote, updated every 30 minutes.
## When to Use This Skill
Use this skill when users:
- Ask for today's news or current events
- Want a quick daily briefing
- Request news summaries in Chinese
- Need historical news from a specific date
- Want news in different formats (text, markdown, image)
## API Endpoint
**Base URL:** `https://60s.viki.moe/v2/60s`
**Method:** GET
## Parameters
- `date` (optional): Date in YYYY-MM-DD format (e.g., "2024-01-15")
- If not provided, returns the latest available news
- `encoding` (optional): Output format
- `json` (default): Structured JSON data
- `text`: Plain text format
- `markdown`: Formatted markdown
- `image`: Redirect to image URL
- `image-proxy`: Returns image binary data
## How to Use
### Basic Usage - Get Latest News
```bash
curl "https://60s.viki.moe/v2/60s"
```
```python
import requests
response = requests.get('https://60s.viki.moe/v2/60s')
news = response.json()
print(f"📰 {news['date']} 新闻简报")
print(f"农历:{news['lunar_date']} {news['day_of_week']}\n")
for i, item in enumerate(news['news'], 1):
print(f"{i}. {item['title']}")
print(f"\n💭 微语:{news['tip']}")
```
### Get News for Specific Date
```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'date': '2024-01-15'})
```
### Get News as Markdown
```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'encoding': 'markdown'})
markdown_content = response.text
```
### Get News as Plain Text
```python
response = requests.get('https://60s.viki.moe/v2/60s', params={'encoding': 'text'})
text_content = response.text
```
## Response Format (JSON)
```json
{
"date": "2024-01-15",
"day_of_week": "星期一",
"lunar_date": "腊月初五",
"news": [
{
"title": "新闻标题1",
"link": "https://example.com/news1"
},
...
],
"tip": "每日微语内容",
"image": "https://..../image.png",
"updated": "2024-01-15 09:00:00",
"updated_at": 1705280400000,
"api_updated": "2024-01-15 09:00:00",
"api_updated_at": 1705280400000
}
```
## Example Interactions
### User Request: "今天有什么新闻?"
**Agent Response:**
```
📰 2024年1月15日 星期一 农历腊月初五
【今日要闻】
1. 新闻标题1
2. 新闻标题2
3. 新闻标题3
...
💭 微语:[每日微语内容]
```
### User Request: "Get yesterday's news"
```python
from datetime import datetime, timedelta
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')
response = requests.get('https://60s.viki.moe/v2/60s', params={'date': yesterday})
```
## Best Practices
1. **Caching**: The API has built-in caching, responses are very fast
2. **Update Frequency**: News updates every 30 minutes, typically by 10 AM
3. **Error Handling**: Always check response status and handle errors gracefully
4. **Format Selection**: Use JSON for structured data, markdown for formatted output, text for simple presentation
5. **Date Validation**: When requesting specific dates, ensure the date format is YYYY-MM-DD
## Common Use Cases
### 1. Daily News Bot
```python
def send_morning_news():
news = requests.get('https://60s.viki.moe/v2/60s').json()
message = f"早安!今天是 {news['date']} {news['day_of_week']}\n\n"
message += "\n".join([f"{i}. {item['title']}" for i, item in enumerate(news['news'][:5], 1)])
message += f"\n\n{news['tip']}"
return message
```
### 2. News Summary for Chatbots
```python
def get_news_summary(count=5):
news = requests.get('https://60s.viki.moe/v2/60s').json()
return {
'date': news['date'],
'headlines': [item['title'] for item in news['news'][:count]],
'quote': news['tip']
}
```
### 3. Historical News Lookup
```python
def get_historical_news(date_str):
response = requests.get('https://60s.viki.moe/v2/60s', params={'date': date_str})
if response.ok:
return response.json()
return None
```
## Troubleshooting
### Issue: No data returned
- **Solution**: Try requesting previous dates (yesterday or the day before)
- The service tries latest 3 days automatically
### Issue: Image not loading
- **Solution**: Use `encoding=image-proxy` instead of `encoding=image`
- The proxy endpoint directly returns image binary data
### Issue: Old date requested
- **Solution**: Data is only available for recent dates
- Check the response status code
## API Characteristics
- ✅ **Free**: No authentication required
- ✅ **Fast**: Millisecond-level cached responses
- ✅ **Reliable**: Global CDN acceleration
- ✅ **Updated**: Every 30 minutes
- ✅ **Quality**: 15 curated news items from authoritative sources
## Related Resources
- [60s API Documentation](https://docs.60s-api.viki.moe)
- [GitHub Repository](https://github.com/vikiboss/60s)
- [Data Source Repository](https://github.com/vikiboss/60s-static-host)
© vikiboss · MIT · vikiboss/60s-skills