Kanameishi(要石)
ターミナル上で動作するリアルタイム地震情報モニターアプリケーション。
P2P地震情報 API v2 を利用して、地震情報・津波予報をリアルタイムに表示します。
機能
- 🗾 ASCIIアート日本地図上に震源を表示
- 🚨 緊急地震速報〔警報〕の受信時、地図上にP波・S波の到達予想円をアニメーション表示
- ⏱️ 予報区ごとの主要動到達カウントダウン (「あと N 秒」)
- 📊 震度分布をカラーバーチャートで表示
- 📍 震度ごと・都道府県ごとの観測地点名 (市区町村レベル) を一覧表示
- 📋 地震履歴の一覧表示
- 🌊 津波予報の警告表示
- 🔄 WebSocket によるリアルタイム更新
- 🔔 OS通知・音アラート (震度しきい値を設定可能)
- 📍 「自分の地域」の震度をヘッダーに常時表示。緊急地震速報では自分の地域を最優先で表示し、しきい値未満でも通知
- ⚙️ TUI 上から編集できる設定画面
- ⌨️ キーボードショートカットによる操作
インストール
PyPI からインストール (推奨)
パッケージ名は kanameishi、起動コマンドは kaname です。依存関係を専用の仮想環境に隔離したまま、どのディレクトリからでも実行できます。
# pipx が未導入の場合 (初回のみ)
brew install pipx
pipx ensurepath # PATH 追加。反映されない場合はターミナルを再起動
pipx install kanameishi
uv を使っている場合:
uv tool install kanameishi
インストールせず一度だけ試す (コマンド名が違うため --from が必要):
uvx --from kanameishi kaname
更新・アンインストール:
pipx upgrade kanameishi
pipx uninstall kanameishi
Release の wheel を指定する
バージョンを固定したい場合は、Releases に添付された wheel を直接指定できます。
# X.Y.Z は Releases ページで最新のバージョンに置き換えてください
pipx install https://github.com/yamato3010/kanameishi/releases/download/vX.Y.Z/kanameishi-X.Y.Z-py3-none-any.whl
ソースからインストール
# リポジトリのルートで実行
pipx install .
# 更新する場合 (コードを変更/pull した後)
pipx install . --force
pipx を使わない場合
pip install --user .
開発用インストール (editable)
コードを編集しながら動作確認したい場合はこちら。
pip install -e .
使い方
# モジュールとして実行 (editable インストール時など)
python -m kanameishi
# グローバルインストール後はどこからでも実行可能
kaname
キーバインド
| キー | 動作 |
|---|---|
Q |
アプリ終了 |
R |
データ更新 |
↑ ↓ (K J) |
履歴スクロール |
D |
選択した地震の詳細 (Esc / D で閉じる) |
, |
設定 (Esc で閉じる) |
? |
このアプリについて (Esc で閉じる) |
E |
緊急地震速報のデモ表示 (動作確認用) |
詳細画面 (D)
履歴で選んだ地震について、メイン画面のパネルに収まらない情報をまとめて表示します。
- 震源の座標・発生時刻・発表時刻・発表種別・情報ID
- 「自分の地域」でこの地震が観測された震度
- 全観測地点を震度の大きい順・都道府県ごとに一覧 (メイン画面の震度分布パネルは件数を絞って表示しています)
| キー | 動作 |
|---|---|
↑ ↓ (K J) |
観測地点リストをスクロール |
Esc D |
閉じる |
設定画面 (,)
マウスでも操作できますが、キーボードだけで完結します。
| キー | 動作 |
|---|---|
↑ ↓ (K J) |
項目を移動 |
Tab Shift+Tab |
項目を移動 |
Space |
スイッチの ON/OFF を切り替え |
Enter |
ドロップダウンを開く / 決定 |
S |
保存して閉じる |
Esc |
保存せずに閉じる |
自分の地域
都道府県をひとつ登録しておくと、自分に関係する揺れを優先して扱います。設定画面 (,) の「自分の地域」で選びます (既定は未設定)。
- ヘッダーに「📍東京都 震度3 12分前」のように、その地域を最後に揺らした地震の震度を常時表示します (履歴に無ければ「揺れなし」)
- 緊急地震速報では、自分の地域の予報区を予報区一覧の上に大きく取り出して、予想震度と主要動到達までの秒数を表示します
- 通知しきい値 (「通知する最小震度」) 未満でも、自分の地域が揺れたら通知します。うるさい場合は「自分の地域が揺れたら震度によらず通知」を切ってください
- 通知の本文には自分の地域の震度も併記します (例:
千葉県北西部 M5.2(📍東京都 震度2))
震度は都道府県単位の判定です。同じ都道府県に複数の観測点・予報区がある場合は、そのうち最も大きい震度を採用します。
通知
ターミナルを見ていないときでも地震に気づけるよう、OS のデスクトップ通知と音アラートを出せます。
, キーの設定画面から変更でき、内容は設定ファイルに保存されます。
| 設定 | 既定値 | 説明 |
|---|---|---|
| 自分の地域 (都道府県) | 未設定 | 優先して扱う都道府県 (自分の地域) |
| OS通知 | 有効 | OS のデスクトップ通知を出す |
| 通知する最小震度 | 震度4 | この震度以上の地震のみ通知する |
| 音アラート | 有効 | 通知と同時に端末ベルを鳴らす |
| 緊急地震速報は震度によらず通知 | 有効 | EEW をしきい値に関係なく通知する |
| 津波予報は震度によらず通知 | 有効 | 津波予報をしきい値に関係なく通知する |
| 自分の地域が揺れたら震度によらず通知 | 有効 | 自分の地域の揺れをしきい値に関係なく通知する |
- OS通知は macOS (
osascript) と Linux (notify-send) に対応します。notify-sendが未インストールの Linux やその他の環境では、OS通知は出ず音アラートのみになります - 音アラートは端末ベル (
\a) を鳴らします。端末側でベルを無効化している場合は鳴りません (ターミナルの設定を確認してください) - macOS では初回の通知時にシステムの通知許可が必要です。届かない場合は「システム設定 → 通知」でお使いのターミナルアプリを確認してください
設定ファイル
~/.config/kanameishi/config.json に保存されます (XDG_CONFIG_HOME を設定している場合はそちらに従います)。
{
"notify": {
"enabled": true,
"min_scale": 40,
"sound": true,
"eew_always": true,
"tsunami_always": true,
"region_always": true
},
"region": "東京都"
}
min_scale は P2P地震情報 API の震度値で、10=震度1, 20=震度2, 30=震度3, 40=震度4,
45=震度5弱, 50=震度5強, 55=震度6弱, 60=震度6強, 70=震度7 です。
region は都道府県名 ("東京都" "大阪府" "北海道" など) で、"" なら未設定です。
ファイルが無い場合や壊れている場合は既定値で起動します。region に都道府県名以外を書いた場合は未設定として扱います。
緊急地震速報について
- P2P地震情報の code 556 (緊急地震速報〔警報〕) を受信して表示します。警報級 (予想最大震度5弱以上) のみ配信されるため、実際に受信する機会はまれです
- P波 (○) ・S波 (●) の到達予想円は定数速度 (P: 7km/s, S: 4km/s) による近似で、気象庁の走時表とは数秒ずれることがあります
Eキーでデモ用のEEWを表示して動作を確認できます- 環境変数
KANAME_SANDBOX=1を設定して起動すると、P2P地震情報の開発サンドボックスAPI (過去データの繰り返し配信) に接続します
時刻の扱い
画面に出る時刻・相対表記 (「n分前」) ・カウントダウンはすべて日本標準時 (JST) 基準です。端末のタイムゾーンがJST以外でもずれません。
データソース
P2P地震情報 - 商用・非商用問わず無償利用可能
ライセンス
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kanameishi-0.3.0.tar.gz.
File metadata
- Download URL: kanameishi-0.3.0.tar.gz
- Upload date:
- Size: 43.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7dc00580785e41e0abc290bc8970ece0ee7d87ff283e9039854eefbdb2bdb3a
|
|
| MD5 |
2b0285935866126e67ec97ac306474b7
|
|
| BLAKE2b-256 |
257f204df66418d1e1e5cfb303668c3c8f7c2c81129bea20a4a4291bc8da141b
|
Provenance
The following attestation bundles were made for kanameishi-0.3.0.tar.gz:
Publisher:
release-please.yml on yamato3010/kanameishi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kanameishi-0.3.0.tar.gz -
Subject digest:
e7dc00580785e41e0abc290bc8970ece0ee7d87ff283e9039854eefbdb2bdb3a - Sigstore transparency entry: 2286467777
- Sigstore integration time:
-
Permalink:
yamato3010/kanameishi@6ab2891e44c0c93c5cc9f708a7806bf2314c6264 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yamato3010
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@6ab2891e44c0c93c5cc9f708a7806bf2314c6264 -
Trigger Event:
push
-
Statement type:
File details
Details for the file kanameishi-0.3.0-py3-none-any.whl.
File metadata
- Download URL: kanameishi-0.3.0-py3-none-any.whl
- Upload date:
- Size: 49.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76966811e1c46b02c0d7b75d6cb082820ad43d70a8e7e02970cc4a0e9a77d371
|
|
| MD5 |
0a8308a1d4b8983a3385a0175032bd85
|
|
| BLAKE2b-256 |
4005b8691e7d558d99181d8f5de495325963e25757b9a137b6cba42a77b14e53
|
Provenance
The following attestation bundles were made for kanameishi-0.3.0-py3-none-any.whl:
Publisher:
release-please.yml on yamato3010/kanameishi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kanameishi-0.3.0-py3-none-any.whl -
Subject digest:
76966811e1c46b02c0d7b75d6cb082820ad43d70a8e7e02970cc4a0e9a77d371 - Sigstore transparency entry: 2286467832
- Sigstore integration time:
-
Permalink:
yamato3010/kanameishi@6ab2891e44c0c93c5cc9f708a7806bf2314c6264 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/yamato3010
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-please.yml@6ab2891e44c0c93c5cc9f708a7806bf2314c6264 -
Trigger Event:
push
-
Statement type: