← 返回 Skills 市场
atl4so

Kaspa News

作者 atl4so · GitHub ↗ · v1.1.0
cross-platform ✓ 安全检测通过
631
总下载
2
收藏
0
当前安装
4
版本数
在 OpenClaw 中安装
/install kaspa-news
功能描述
Kaspa News — let your Claw know everything about Kaspa in one place: latest news, core development updates, ecosystem launches, community talks, and weekly r...
使用说明 (SKILL.md)

Kaspa News Skill

Query the public kaspa.news API for Kaspa ecosystem intelligence. No API keys needed.

Quick Start

SCRIPT="~/.openclaw/workspace/skills/kaspa-news/scripts/kaspa-news.sh"

$SCRIPT focused           # Curated community tweets
$SCRIPT builders           # Ecosystem/builder tweets
$SCRIPT top                # Most viewed tweets
$SCRIPT developers         # Core dev tweets (includes replies)
$SCRIPT videos             # YouTube videos
$SCRIPT reddit             # r/kaspa posts
$SCRIPT pulse              # Latest AI pulse report

Requirements

  • python3 with requests module
  • jq
  • Internet access to https://kaspa.news/api
  • 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?"

$SCRIPT focused              # Latest 10
$SCRIPT focused -n 5         # Latest 5
$SCRIPT focused --since 12   # Last 12 hours only

builders — Ecosystem/Builder Tweets

Projects building on Kaspa (labeled "Ecosystem" on kaspa.news frontend). Excludes replies.

$SCRIPT builders             # Latest 10
$SCRIPT builders -n 20       # Latest 20

top — Highest Engagement Tweets

Sorted by view count (most views first). This is the only command that shows view counts (👁️).

$SCRIPT top                  # Top 10 by views
$SCRIPT top -n 3             # Top 3

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.

$SCRIPT developers           # Latest 10 dev tweets
$SCRIPT developers -n 15     # Latest 15

videos — YouTube Videos

Latest Kaspa-related YouTube videos with view/like counts.

$SCRIPT videos               # Latest 10
$SCRIPT videos --since 48    # Last 2 days

reddit — Reddit Posts

Latest posts from r/kaspa with upvote scores.

$SCRIPT reddit               # Latest 10
$SCRIPT reddit -n 5          # Latest 5

pulse — AI Pulse Report

AI-generated intelligence report summarizing recent Kaspa ecosystem activity. Single latest report.

$SCRIPT pulse                # Latest report (text summary)
$SCRIPT pulse --sources      # With clickable source links to tweets
$SCRIPT pulse --json         # Full JSON (for custom parsing)

Global Options

Option Description Default
-n, --limit N Number of items to show 10
--since HOURS 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)

🎯 Focused Tweets

📝 @DailyKaspa (1h)
Nearly $10 million in short positions are stacked around the 0.037 level...
[SOURCE](https://x.com/DailyKaspa/status/2024047412226978031)

💬 @KaspaHub (10h)
Better late than never, I guess.
[SOURCE](https://x.com/KaspaHub/status/2023918673216311580)

↩️ @hashdag (1h)
@asaefstroem @maxibitcat could be, not ruling that out...
[SOURCE](https://x.com/hashdag/status/2024050945718399078)

Top Command (includes view counts)

🔥 Top Tweets

📝 @BSCNews (23h) — 👁️ 22179
🚨JUST IN: $KAS, $PI, $ASTER AMONG PROJECTS WITH MOST BULLISH SENTIMENT...
[SOURCE](https://x.com/BSCNews/status/2023709720901534048)

💬 @kaspaunchained (14h) — 👁️ 10663
Private messaging on Kaspa L1. Encrypted payloads riding the BlockDAG...
[SOURCE](https://x.com/kaspaunchained/status/2023845437577257447)

Videos

📺 Kaspa Videos

📺 Kaspa Crypto Prediction | Why We Went Bearish?
  📡 Crypto MindSet | 👁️ 80 | ❤️ 3 | 6h
  🔗 https://youtube.com/watch?v=NgO5iW1B_t4

Reddit

🟠 Kaspa Reddit

🟠 Did Fred Thiel Dump his Kaspa Bag?
  👤 u/Weekly-Fudge1909 | ⬆️ 10 | 2h
  🔗 https://reddit.com/r/kaspa/comments/1r7o9oi

Pulse

📊 Kaspa Pulse Reports

[REPORT HERE](https://kaspa.news/pulse/d6167911-21ab-4135-bccb-a4baf4e4480f)

📊 From Silverscript to TangFi...
  🕐 13h | 🤖 gpt-5.2

  Silverscript compiler goes live on Testnet 12, delivering first high-level
  contract language for Kaspa...

🎨 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
  • #hashtag[#hashtag](https://x.com/search?q=%23hashtag) — links to X search
  • $KAS[$KAS](https://x.com/search?q=%24KAS) — links to X search

Important:

  • Only linkify REAL handles/hashtags/cashtags
  • #2, #4, #10BPS (numbers) are NOT hashtags — leave as-is
  • @ 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:

📊 **Latest Kaspa Pulse Report** (date)

**"Report Title Here"**

━━━ Core Development ━━━

🔧 **Silverscript** — First high-level smart contract language, live on TN12.

📐 **Covenants** — Enable programmable spending conditions on UTXO.

━━━ Ecosystem ━━━

💵 **TangFi** — Bridging stablecoins (USDT/USDC) to Kaspa L1.

🔐 **Private Messaging** — Encrypted payloads on BlockDAG at 10 BPS.

━━━ Milestones ━━━

📈 600M total transactions on Kaspa mainnet.

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):

# Fetch all 4 tweet sources
$SCRIPT focused --json -n 999 > /tmp/focused.json
$SCRIPT builders --json -n 999 > /tmp/builders.json
$SCRIPT top --json -n 999 > /tmp/top.json
$SCRIPT developers --json -n 999 > /tmp/devs.json

# Merge, deduplicate by url, filter by username + date range (safe)
TARGET_USER="michaelsuttonil"
cat /tmp/*.json | jq -s --arg user "$TARGET_USER" 'add | unique_by(.url) | [.[] | select(.author_username == $user)]'

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.

📅 Feb 17 — Smart contracts and Silverscript progress

📝 @michaelsuttonil
Full tweet text here exactly as-is...
[SOURCE](https://x.com/michaelsuttonil/status/123)

💬 @michaelsuttonil
Quote comment here (user's own words only)...
[SOURCE](https://x.com/michaelsuttonil/status/456)

↩️ To @hashdag: "Reply text shown in quotes..."
[SOURCE](https://x.com/michaelsuttonil/status/789)

---

📅 Feb 16 — TN12 testing and validator discussion

📝 @michaelsuttonil
Another tweet...
[SOURCE](url)

Per-user format rules:

  • 📅 Feb 17 date headers with em dash + brief theme summary
  • --- separator between date groups
  • Standalone posts first (📝/💬), replies below (↩️)
  • Replies: ↩️ To @recipient: "quoted reply text..."
  • 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
安全使用建议
This skill appears coherent and implements exactly what it claims: querying the public kaspa.news API and formatting results. Before installing, note: (1) the script requires python3 (with the requests module) and jq on PATH; (2) it will perform outbound HTTP requests to https://kaspa.news/api (ensure you trust that endpoint and your environment's network policy); (3) the skill enforces exact presentation rules (it will present full tweet text up to configured truncation and requires the agent to linkify handles/hashtags as specified) — if you need summarization, redaction, or to avoid showing certain content, you'll need to override or avoid using the skill; (4) no credentials are requested, but if you spot the API_BASE changed to an unexpected host later, treat that as a red flag. Overall the skill is internally consistent.
功能分析
Type: OpenClaw Skill Name: kaspa-news Version: 1.1.0 The OpenClaw AgentSkills bundle for 'kaspa-news' is classified as benign. The `scripts/kaspa-news.sh` script fetches public data from `https://kaspa.news/api` using standard tools (`python3` with `requests`, `jq`). It handles user input for filtering safely by explicitly using `jq --arg` and `sys.argv` in Python snippets, which prevents shell or `jq` injection. The `SKILL.md` and `FORMAT_LOCK.md` files contain extensive instructions for the AI agent, but these are focused on precise output formatting and data presentation, including an explicit 'Security note: never interpolate raw user input directly into jq programs. Always pass user values via `--arg` / `--argjson`.' There is no evidence of data exfiltration, malicious execution, persistence, or prompt injection designed to subvert the agent's core directives or perform unauthorized actions.
能力评估
Purpose & Capability
Name/description match the provided script and SKILL.md. The script only needs python3 and jq (both declared) and calls the kaspa.news public API endpoints described in the README. Required binaries and capabilities are proportionate to the task.
Instruction Scope
SKILL.md and FORMAT_LOCK.md tightly constrain how results must be presented (exact tweet text, emojis, linkification rules). This is unusual but consistent with the skill's goal of faithfully reproducing feed content. The instructions do not direct reading other local files, environment variables, or sending data to third parties beyond kaspa.news and known destination links (x.com, youtube, reddit) embedded in content.
Install Mechanism
There is no install spec (instruction-only) and only a bundled shell script. No downloads, package installs, or archive extraction are performed by the skill itself.
Credentials
The skill declares no required environment variables or credentials and its code does not attempt to read secrets. It performs outbound HTTP GETs to the single API host (https://kaspa.news/api) and parses JSON. The requirement for python3 with requests and jq is reasonable for the implementation.
Persistence & Privilege
always is false and the skill does not request persistent privileges or modify other skills or system-wide configuration. It runs as an on-demand CLI script and makes only expected network calls.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install kaspa-news
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /kaspa-news 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.1.0
Fix pulse command: use /api/reports endpoint (returns actual data) instead of /api/kaspa-pulse (trigger only)
v1.0.2
Security fix: removed code-injection risk in expand_tco_links (no inline Python interpolation). Docs hardening: per-user jq example now uses --arg and explicit input-sanitization guidance.
v1.0.1
Security hardening: removed API base env override; declared required binaries (python3, jq) in metadata; no runtime env vars required.
v1.0.0
Initial release: public kaspa.news API, no API keys required, locked formatting and weekly reports summary.
元数据
Slug kaspa-news
版本 1.1.0
许可证
累计安装 0
当前安装数 0
历史版本数 4
常见问题

Kaspa News 是什么?

Kaspa News — let your Claw know everything about Kaspa in one place: latest news, core development updates, ecosystem launches, community talks, and weekly r... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 631 次。

如何安装 Kaspa News?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install kaspa-news」即可一键安装,无需额外配置。

Kaspa News 是免费的吗?

是的,Kaspa News 完全免费(开源免费),可自由下载、安装和使用。

Kaspa News 支持哪些平台?

Kaspa News 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Kaspa News?

由 atl4so(@atl4so)开发并维护,当前版本 v1.1.0。

💬 留言讨论