earthquake-monitor

🌋 Real-time earthquake monitoring for China, Taiwan, and Japan. CENC/CWA/JMA data with proactive alerting. v1.1.1 - Multi-language (zh/en/ja), pinyin location matching, optimized cache

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "earthquake-monitor" with this command: npx skills add fungjcode/earthquake-monitor

🌋 Earthquake Monitor v1.1.1

Real-time earthquake monitoring for China (CENC), Taiwan (CWA), and Japan (JMA) with proactive alerting.

v1.1.1 Changelog

v1.1.1 (Security Fix)

  • 🔒 Security Update - Removed encryption for ClawHub compatibility
  • 📝 Added SECURITY.md documentation

v1.1.0 Features

  • 🌍 Multi-language Support - Alert messages in Chinese, English, and Japanese
  • 📍 Location Fuzzy Matching - Supports pinyin (dali), abbreviations (DL), partial match (da)
  • Performance Optimization - Shared cache module with auto-cleanup
  • Fixed Taiwan (CWA) data source integration
  • Improved notification deduplication logic

Quick Start

// Initialize monitoring
await init({ location: "大理" })

// Get latest earthquakes
await getAll()

// Start proactive monitoring
await start()

Data Sources

SourceRegionLanguage (Alert)Description
CENC🇨🇳 China中文China Earthquake Networks Center
CWA🇹🇼 Taiwan中文Central Weather Administration
JMA🇯🇵 Japan日本語Japan Meteorological Agency

API Reference

init(options)

Initialize configuration.

await init({
  location: "dali",           // City name (supports pinyin, abbreviations)
  distanceThreshold: 300,     // Alert distance in km
  minMagnitude: 3.0,         // Minimum magnitude
  language: 'zh',            // Language: zh/en/ja
  sources: {                // Toggle data sources
    CENC: true,
    JMA: true,
    CWA: true
  }
})

getAll(options)

Get earthquakes from all sources.

const result = await getAll({ limit: 5 })
// Returns: { earthquakes, totalCount, nearbyEarthquakes, hasAlert, alertMessage }

getCENC(limit)

Get China earthquake data.

const { earthquakes } = await getCENC(10)

getJMA(limit)

Get Japan earthquake data.

const { earthquakes } = await getJMA(10)

getCWA()

Get Taiwan earthquake early warning data.

const { earthquakes, isWarning } = await getCWA()

start(options)

Start proactive monitoring with auto-alerts.

await start({ interval: 60000 })  // Check every 60 seconds

stop()

Stop monitoring.

await stop()

config(newConfig)

View or update configuration.

// View
const cfg = await config()

// Update
await config({ language: 'en', minMagnitude: 4.0 })

cities()

List all supported cities with coordinates.

const { cities } = await cities()

Configuration Options

OptionTypeDefaultDescription
locationstring/object大理City name or {name, latitude, longitude}
distanceThresholdnumber300Alert distance in km
minMagnitudenumber3.0Minimum earthquake magnitude
languagestringzhAlert language: zh/en/ja
sources.CENCbooleantrueEnable China data
sources.JMAbooleantrueEnable Japan data
sources.CWAbooleantrueEnable Taiwan data
webhookstringnullEncrypted webhook URL

Supported Cities (20+)

CityPinyinAbbrCoordinates
大理dali, dal, dlDL25.61°N, 100.27°E
北京beijing, bj, bBJ39.90°N, 116.40°E
上海shanghai, sh, sSH31.23°N, 121.47°E
昆明kunming, km, kKM25.04°N, 102.71°E
成都chengdu, cd, cCD30.57°N, 104.07°E
东京tokyo, dj, dDJ35.68°N, 139.69°E
............

Location Matching Examples

All these return Beijing:

await init({ location: '北京' })      // Chinese
await init({ location: 'beijing' })   // Full pinyin
await init({ location: 'bj' })        // Abbreviation
await init({ location: 'bei' })       // Partial match

Multi-Language Alerts

Alert language is automatically selected based on earthquake source:

SourceLanguageExample
CENC (China)中文⚠️ 地震预警提醒!
CWA (Taiwan)中文⚠️ 地震预警提醒!
JMA (Japan)日本語⚠️ 地震アラート!

Manual Language Override

// Set preferred language (applies to alert format)
await init({ language: 'en' })

// All alerts will be in English regardless of source

Alert Message Format

⚠️ Earthquake Alert!
📍 Epicenter near Dali:

1. 🔴 M7.6级 [中国地震台网]
   📍 汤加群岛
   📏 Distance: 5000km
   ⏰ 2026-03-24 12:37:50
   📊 Depth: 250km

Please stay safe!

Security

Webhook URLs are encrypted using AES-256-CBC before storing in config file:

// Set webhook (automatically encrypted)
await config({ webhook: 'https://oapi.dingtalk.com/robot/send?access_token=xxx' })

// Stored encrypted, decrypted only in memory

Performance

Shared Cache

  • Reduces redundant API calls
  • TTL-based expiration (1 minute default)
  • Auto-cleanup every 5 minutes

Parallel Fetching

  • All three data sources fetched simultaneously
  • Fast response time

Return Format

{
  timestamp: "2026-03-24T14:30:00.000Z",
  sources: [
    { source: "CENC", sourceName: "中国地震台网", count: 10, earthquakes: [...] },
    { source: "JMA", sourceName: "日本气象厅", count: 5, earthquakes: [...] }
  ],
  earthquakes: [...],      // Merged, sorted by time
  totalCount: 15,
  nearbyEarthquakes: [...], // Within distanceThreshold
  hasAlert: true/false,
  alertMessage: "..."       // Formatted alert string
}

Notes

  • 🌐 Data from official government agencies (CENC/CWA/JMA)
  • 🔑 No API key required
  • 📡 WebSocket + HTTP fallback
  • 🔄 Auto-retry on failure

Support

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.

General

Team Up

Team Up integration. Manage Organizations. Use when the user wants to interact with Team Up data.

Registry SourceRecently Updated
General

Retriever

Retriever integration. Manage Organizations, Leads, Projects, Pipelines, Users, Filters. Use when the user wants to interact with Retriever data.

Registry SourceRecently Updated
General

Pdf Tool

Work with PDF files including merge, split, extract text, and convert. Use when user needs to combine multiple PDFs, split a PDF into pages, extract text fro...

Registry SourceRecently Updated
General

Salesblink

SalesBlink integration. Manage Organizations, Pipelines, Projects, Users, Filters. Use when the user wants to interact with SalesBlink data.

Registry SourceRecently Updated