Kaspa News Skill
Query the public kaspa.news API for Kaspa ecosystem intelligence. No API keys needed.
Quick Start
CODEBLOCK0
Requirements
- -
python3 with requests module - INLINECODE2
- Internet access to INLINECODE3
- No API keys, no tokens, no auth — all endpoints are public
Commands Reference
focused — Curated Community Tweets
Community-curated tweets. Excludes replies. Best for "what's the Kaspa community talking about?"
CODEBLOCK1
builders — Ecosystem/Builder Tweets
Projects building on Kaspa (labeled "Ecosystem" on kaspa.news frontend). Excludes replies.
CODEBLOCK2
top — Highest Engagement Tweets
Sorted by view count (most views first).
This is the only command that shows view counts (👁️).
CODEBLOCK3
developers — Developer Tweets
Tweets from known Kaspa core developers.
Includes replies (unlike other tweet commands). Shows dev discussions and technical debates.
The script has a built-in list of known dev usernames, but this is only for the default developers command filter. Per-user searches (see below) work for ANY username.
CODEBLOCK4
videos — YouTube Videos
Latest Kaspa-related YouTube videos with view/like counts.
CODEBLOCK5
reddit — Reddit Posts
Latest posts from r/kaspa with upvote scores.
CODEBLOCK6
pulse — AI Pulse Report
AI-generated intelligence report summarizing recent Kaspa ecosystem activity. Single latest report.
CODEBLOCK7
Global Options
| Option | Description | Default |
|---|
| INLINECODE12 | Number of items to show | 10 |
| INLINECODE13 |
Only items from last N hours | all |
|
--json | Raw JSON output (for scripting/parsing) | off |
|
--sources | Show source links in pulse reports | off |
|
-h, --help | Show help text | — |
Script Output Format
The script outputs plain text. Here's exactly what each command produces:
Tweet Commands (focused, builders, developers)
CODEBLOCK8
Top Command (includes view counts)
CODEBLOCK9
Videos
CODEBLOCK10
Reddit
CODEBLOCK11
Pulse
CODEBLOCK12
🎨 PRESENTATION RULES (MANDATORY FOR ALL AGENTS)
The script outputs plain text. When you present this to a user, follow these rules exactly. This is the approved format — do not deviate.
Tweet Type Emojis
| Emoji | Meaning |
|---|
| 📝 | Regular tweet |
| 💬 |
Quote tweet (user's own comment only — NOT the quoted source tweet) |
| ↩️ | Reply |
What the Script Already Does (don't redo these)
- - ✅ Picks correct emoji (📝/💬/↩️)
- ✅ Shows relative time ("10h", "1d", "5m" — no "ago")
- ✅ Expands t.co links to real URLs
- ✅ Strips trailing t.co image links
- ✅ Decodes HTML entities (& → &, > → >)
- ✅ Truncates at 300 chars
- ✅ Adds SOURCE link on every tweet
- ✅ Shows 👁️ views ONLY on
top command
What YOU (the presenting agent) Must Do
X/Twitter Linkification
Convert plain text @handles, #hashtags, and $CASHTAGS into clickable links:
- -
@username → [@username](https://x.com/username) — links to X profile - INLINECODE20 →
[#hashtag](https://x.com/search?q=%23hashtag) — links to X search - INLINECODE22 →
[$KAS](https://x.com/search?q=%24KAS) — links to X search
Important:
- - Only linkify REAL handles/hashtags/cashtags
- INLINECODE24 ,
#4, #10BPS (numbers) are NOT hashtags — leave as-is - INLINECODE27 inside email addresses are NOT handles — leave as-is
- Link to x.com (NOT twitter.com, NOT Telegram)
Pulse Report Formatting
When presenting pulse reports, reformat the summary into grouped sections:
CODEBLOCK13
Pulse formatting rules:
- - Group by category with
━━━ Category ━━━ separators - Bold project/feature names
- One line per item, max 1-2 sentences
- Use emojis as bullet prefixes (🔧💵🔐💬🌉⚡🏦📊📈💎🎤📱)
- Key people to name: @hashdag (Yonatan Sompolinsky), @michaelsuttonil (Michael Sutton), @OriNewman (Ori Newman)
🔍 Per-User Tweet Search
When someone asks for tweets from a specific person (e.g., "show me @michaelsuttonil tweets from last 2 weeks"), this works for ANY username — not limited to the 9 built-in dev names.
How to Query
Fetch ALL endpoints and merge (always go wide):
CODEBLOCK14
Or use the --json output and filter with jq/python inline.
Security note: never interpolate raw user input directly into jq programs. Always pass user values via --arg / --argjson.
How to Present Per-User Results
Group by date (newest first). Standalone posts first, then replies.
CODEBLOCK15
Per-user format rules:
- -
📅 Feb 17 date headers with em dash + brief theme summary - INLINECODE33 separator between date groups
- Standalone posts first (📝/💬), replies below (↩️)
- Replies: INLINECODE34
- Omit trivial replies ("100%", "sure", "thanks") unless notable
- End with brief editorial summary of themes across the period
- Always search the FULL time range asked — never shorten it
- Show everything found — don't pre-filter or narrow results
❌ DO NOT (hard rules)
These are locked rules. Violating any of these = wrong output.
| Rule | Why |
|---|
| ❌ Don't edit, trim, rewrite, or summarize tweet text | Show user's exact words |
| ❌ Don't merge same-author tweets together |
Every tweet is separate |
| ❌ Don't show the quoted tweet's source text | Quote tweets show ONLY the user's own comment |
| ❌ Don't show sentiment percentages (bullish/bearish %) | User explicitly forbids this |
| ❌ Don't show "N tweets analyzed" counts | User explicitly forbids this |
| ❌ Don't show model name in pulse output to users | Internal detail |
| ❌ Don't add bold to @usernames in tweet output | Script format is final |
| ❌ Don't add extra emojis or separator lines to tweets | Script format is final |
| ❌ Don't add "(latest N)" to section headers | Clean headers only |
| ❌ Don't add type labels like "— 📝 Tweet" after time | Emoji prefix is enough |
| ❌ Don't use markdown tables for tweets | Use the line-by-line format |
| ❌ Don't say "according to the pulse report" | Just present the info directly |
| ❌ Don't add engagement metrics (❤️/🔁) to any command except
top | Only
top shows 👁️ |
| ❌ Don't link @handles to Telegram | Always link to x.com |
| ❌ Don't strip [SOURCE] links | They're always shown |
✅ DO (best practices)
| Practice | Detail |
|---|
| ✅ Run the script, present its output | Don't fabricate or cache old data |
| ✅ Linkify @handles → x.com profiles |
[@user](https://x.com/user) |
| ✅ Linkify #hashtags → x.com search |
[#kaspa](https://x.com/search?q=%23kaspa) |
| ✅ Linkify $CASHTAGS → x.com search |
[$KAS](https://x.com/search?q=%24KAS) |
| ✅ Group pulse reports by category | Use ━━━ separators |
| ✅ Bold project names in pulse | Makes scanning easy |
| ✅ Keep it scannable on mobile | Short lines, emojis, no walls of text |
| ✅ For per-user search: go wide | Search ALL endpoints, full time range |
| ✅ Use
--json for custom filtering | Then format manually |
Trigger Phrases
Use this skill when the user says anything like:
- - "kaspa news", "what's happening in kaspa", "kaspa tweets"
- "kaspa pulse", "kaspa report", "kaspa update"
- "kaspa devs", "what are kaspa developers saying"
- "kaspa videos", "kaspa youtube"
- "kaspa reddit"
- "show me tweets from @someone" (per-user search)
- "top kaspa tweets", "trending kaspa"
- Any mention of kaspa.news
Architecture Notes
- - API base:
https://kaspa.news/api (fixed; no env override) - API returns cached data — query params like
?limit= are ignored server-side - All filtering is client-side — script fetches full dataset, filters with jq
- No auth needed — all endpoints are public, no API keys
- No runtime env vars required
- Script outputs plain text — the presenting agent handles linkification
- FORMAT_LOCK.md in the skill directory is the canonical format specification
Kaspa 新闻技能
查询公共 kaspa.news API 获取 Kaspa 生态系统情报。无需 API 密钥。
快速开始
bash
SCRIPT=~/.openclaw/workspace/skills/kaspa-news/scripts/kaspa-news.sh
$SCRIPT focused # 精选社区推文
$SCRIPT builders # 生态系统/建设者推文
$SCRIPT top # 最多观看推文
$SCRIPT developers # 核心开发者推文(包含回复)
$SCRIPT videos # YouTube 视频
$SCRIPT reddit # r/kaspa 帖子
$SCRIPT pulse # 最新 AI 脉搏报告
要求
- - 带有 requests 模块的 python3
- jq
- 可访问 https://kaspa.news/api 的互联网连接
- 无需 API 密钥、无需令牌、无需认证 — 所有端点均为公开
命令参考
focused — 精选社区推文
社区精选推文。排除回复。最适合了解Kaspa 社区在讨论什么?
bash
$SCRIPT focused # 最新 10 条
$SCRIPT focused -n 5 # 最新 5 条
$SCRIPT focused --since 12 # 仅最近 12 小时
builders — 生态系统/建设者推文
在 Kaspa 上构建的项目(在 kaspa.news 前端标记为生态系统)。排除回复。
bash
$SCRIPT builders # 最新 10 条
$SCRIPT builders -n 20 # 最新 20 条
top — 最高互动推文
按观看次数排序(最多观看优先)。
这是唯一显示观看次数(👁️)的命令。
bash
$SCRIPT top # 按观看次数排名前 10
$SCRIPT top -n 3 # 前 3 条
developers — 开发者推文
来自已知 Kaspa 核心开发者的推文。
包含回复(与其他推文命令不同)。显示开发者讨论和技术辩论。
脚本内置了已知开发者用户名列表,但这仅用于默认的 developers 命令过滤器。按用户搜索(见下文)适用于任何用户名。
bash
$SCRIPT developers # 最新 10 条开发者推文
$SCRIPT developers -n 15 # 最新 15 条
videos — YouTube 视频
最新的 Kaspa 相关 YouTube 视频,含观看/点赞数。
bash
$SCRIPT videos # 最新 10 个
$SCRIPT videos --since 48 # 最近 2 天
reddit — Reddit 帖子
来自 r/kaspa 的最新帖子,含点赞数。
bash
$SCRIPT reddit # 最新 10 条
$SCRIPT reddit -n 5 # 最新 5 条
pulse — AI 脉搏报告
AI 生成的情报报告,总结近期 Kaspa 生态系统活动。仅最新报告。
bash
$SCRIPT pulse # 最新报告(文本摘要)
$SCRIPT pulse --sources # 带可点击的推文来源链接
$SCRIPT pulse --json # 完整 JSON(用于自定义解析)
全局选项
| 选项 | 描述 | 默认值 |
|---|
| -n, --limit N | 显示项目数量 | 10 |
| --since HOURS |
仅显示最近 N 小时的项目 | 全部 |
| --json | 原始 JSON 输出(用于脚本/解析) | 关闭 |
| --sources | 在脉搏报告中显示来源链接 | 关闭 |
| -h, --help | 显示帮助文本 | — |
脚本输出格式
脚本输出纯文本。以下是每个命令的具体输出内容:
推文命令(focused, builders, developers)
🎯 精选推文
📝 @DailyKaspa (1小时)
在 0.037 水平附近堆积了近 1000 万美元的空头头寸...
来源
💬 @KaspaHub (10小时)
迟到总比不到好,我想。
来源
↩️ @hashdag (1小时)
@asaefstroem @maxibitcat 有可能,不排除...
来源
Top 命令(包含观看次数)
🔥 热门推文
📝 @BSCNews (23小时) — 👁️ 22179
🚨最新消息:$KAS、$PI、$ASTER 位列最看涨情绪项目...
来源
💬 @kaspaunchained (14小时) — 👁️ 10663
Kaspa L1 上的私人消息。加密负载搭载 BlockDAG...
来源
视频
📺 Kaspa 视频
📺 Kaspa 加密货币预测 | 我们为何转为看跌?
📡 Crypto MindSet | 👁️ 80 | ❤️ 3 | 6小时
🔗 https://youtube.com/watch?v=NgO5iW1B_t4
Reddit
🟠 Kaspa Reddit
🟠 Fred Thiel 抛售了他的 Kaspa 持仓吗?
👤 u/Weekly-Fudge1909 | ⬆️ 10 | 2小时
🔗 https://reddit.com/r/kaspa/comments/1r7o9oi
脉搏
📊 Kaspa 脉搏报告
报告在此
📊 从 Silverscript 到 TangFi...
🕐 13小时 | 🤖 gpt-5.2
Silverscript 编译器在 Testnet 12 上线,为 Kaspa 提供首个高级
合约语言...
🎨 呈现规则(所有代理必须遵守)
脚本输出纯文本。当你向用户呈现时,请严格遵循以下规则。这是批准的格式 — 不得偏离。
推文类型表情符号
引用推文(仅用户自己的评论 — 不包含被引用的来源推文) |
| ↩️ | 回复 |
脚本已处理的内容(不要重复处理)
- - ✅ 选择正确的表情符号(📝/💬/↩️)
- ✅ 显示相对时间(10小时、1天、5分钟 — 不带前)
- ✅ 将 t.co 链接展开为真实 URL
- ✅ 去除末尾的 t.co 图片链接
- ✅ 解码 HTML 实体(& → &, > → >)
- ✅ 在 300 字符处截断
- ✅ 每条推文添加 来源 链接
- ✅ 仅在 top 命令上显示 👁️ 观看次数
你(呈现代理)必须做的事
X/Twitter 链接化
将纯文本的 @用户名、#话题标签和 $代币标签转换为可点击链接:
- - @用户名 → @用户名 — 链接到 X 个人资料
- #话题标签 → #话题标签 — 链接到 X 搜索
- $KAS → $KAS — 链接到 X 搜索
重要提示:
- - 仅链接化真实的用户名/话题标签/代币标签
- #2、#4、#10BPS(数字)不是话题标签 — 保持原样
- 电子邮件地址中的 @ 不是用户名 — 保持原样
- 链接到 x.com(不是 twitter.com,不是 Telegram)
脉搏报告格式化
呈现脉搏报告时,将摘要重新格式化为分组部分:
📊 最新 Kaspa 脉搏报告(日期)
报告标题在此
━━━ 核心开发 ━━━
🔧 Silverscript — 首个高级智能合约语言,在 TN12 上线。
📐 Covenants — 在 UTXO 上实现可编程支出条件。
━━━ 生态系统 ━━━
💵 TangFi — 将稳定币(USDT/USDC)桥接到 Kaspa L1