はじめに
天気予報をターミナル上で確認できる Raijin を使ってみる。Raijin はRust製の軽量なWeather TUIで、APIキー不要で天気情報を取得できるのが特徴である。
データソースは NWS / Open-Meteo / ViewBits で、現時点では macOS / Linux をサポートしている。
環境
Ubuntu 24.04 LTS
Raijin (crates.io)
nix package manager事前準備
cargoがインストールされていないので、今回は nixでcargoをインストールしてから Raijin をインストールする。
以下のshell.nixをプロジェクトルートに配置する。
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [
pkgs.rustup
];
shellHook = ''
# Use a modern Cargo/Rust toolchain via rustup (edition2024 support).
if ! rustup toolchain list | grep -q '^stable'; then
rustup toolchain install stable
fi
rustup default stable >/dev/null
'';
}この状態で nix-shell を実行すると、cargo コマンドが利用できるようになる。
nix-shellインストール
Raijin は cargo からインストールできる。
cargo install Raijinインストール後は Raijin コマンドで起動できる。
Raijinログ
Updating crates.io index
Downloaded Raijin v0.1.8
Downloaded 1 crate (243.9KiB) in 0.07s
Installing Raijin v0.1.8
Updating crates.io index
Locking 178 packages to latest compatible versions
Adding ratatui v0.29.0 (available: v0.30.0)
Adding unicode-width v0.2.0 (available: v0.2.2)
Downloaded castaway v0.2.4
Downloaded cfg-if v1.0.4
Downloaded strsim v0.11.1
Downloaded signal-hook-mio v0.2.5
Downloaded time-core v0.1.8
Downloaded unicode-truncate v1.1.0
Downloaded zerofrom-derive v0.1.6
Downloaded tinystr v0.8.2
Downloaded time-macros v0.2.27
Downloaded utf8_iter v1.0.4
Downloaded chrono v0.4.44
Downloaded zmij v1.0.21
Downloaded yoke v0.8.1
Downloaded zerotrie v0.2.3
Downloaded shlex v1.3.0
Downloaded url v2.5.8
Downloaded unicode-segmentation v1.12.0
Downloaded zerovec v0.11.5
Downloaded miniz_oxide v0.8.9
Downloaded serde v1.0.228
Downloaded mio v1.1.1
Downloaded icu_properties_data v2.1.2
Downloaded time v0.3.47
Downloaded webpki-roots v1.0.6
Downloaded unicode-width v0.2.0
Downloaded syn v2.0.117
Downloaded unicode-width v0.1.14
Downloaded hashbrown v0.15.5
Downloaded serde_json v1.0.149
Downloaded itertools v0.13.0
Downloaded idna v1.1.0
Downloaded hashbrown v0.16.1
Downloaded memchr v2.8.0
Downloaded rustls v0.23.37
Downloaded rustix v0.38.44
Downloaded icu_collections v2.1.1
Downloaded http v1.4.0
Downloaded rustls-webpki v0.103.9
Downloaded rustix v1.1.4
Downloaded icu_normalizer v2.1.1
Downloaded icu_locale_core v2.1.1
Downloaded indexmap v2.13.0
Downloaded icu_provider v2.1.1
Downloaded icu_properties v2.1.2
Downloaded ratatui v0.29.0
Downloaded icu_normalizer_data v2.1.1
Downloaded iana-time-zone v0.1.65
Downloaded flate2 v1.1.9
Downloaded ureq v3.2.0
Downloaded serde_derive v1.0.228
Downloaded serde_core v1.0.228
Downloaded ryu v1.0.23
Downloaded proc-macro2 v1.0.106
Downloaded num-traits v0.2.19
Downloaded find-msvc-tools v0.1.9
Downloaded either v1.15.0
Downloaded rustls-pki-types v1.14.0
Downloaded parking_lot_core v0.9.12
Downloaded parking_lot v0.12.5
Downloaded rustversion v1.0.22
Downloaded quote v1.0.45
Downloaded libc v0.2.182
Downloaded paste v1.0.15
Downloaded foldhash v0.1.5
Downloaded dotenv v0.15.0
Downloaded displaydoc v0.2.5
Downloaded dirs-sys v0.5.0
Downloaded semver v1.0.27
Downloaded itoa v1.0.17
Downloaded indoc v2.0.7
Downloaded ureq-proto v0.5.3
Downloaded unicode-ident v1.0.24
Downloaded powerfmt v0.2.0
Downloaded potential_utf v0.1.4
Downloaded option-ext v0.2.0
Downloaded form_urlencoded v1.2.2
Downloaded errno v0.3.14
Downloaded document-features v0.2.12
Downloaded smallvec v1.15.1
Downloaded rustc_version v0.4.1
Downloaded num-conv v0.2.0
Downloaded lock_api v0.4.14
Downloaded instability v0.3.11
Downloaded include_dir_macros v0.7.4
Downloaded include_dir v0.7.4
Downloaded ident_case v1.0.1
Downloaded httparse v1.10.1
Downloaded heck v0.5.0
Downloaded getrandom v0.2.17
Downloaded equivalent v1.0.2
Downloaded zerovec-derive v0.11.2
Downloaded zeroize v1.8.2
Downloaded writeable v0.6.2
Downloaded scopeguard v1.2.0
Downloaded percent-encoding v2.3.2
Downloaded once_cell v1.21.3
Downloaded ring v0.17.14
Downloaded lru v0.12.5
Downloaded log v0.4.29
Downloaded litrs v1.0.0
Downloaded litemap v0.8.1
Downloaded idna_adapter v1.2.1
Downloaded simd-adler32 v0.3.8
Downloaded dirs v6.0.0
Downloaded derive_more-impl v2.1.1
Downloaded derive_more v2.1.1
Downloaded crossterm v0.29.0
Downloaded crossterm v0.28.1
Downloaded cc v1.2.56
Downloaded synstructure v0.13.2
Downloaded static_assertions v1.1.0
Downloaded signal-hook v0.3.18
Downloaded darling_core v0.23.0
Downloaded compact_str v0.8.1
Downloaded bytes v1.11.1
Downloaded base64 v0.22.1
Downloaded strum_macros v0.26.4
Downloaded cookie_store v0.22.1
Downloaded allocator-api2 v0.2.21
Downloaded zerofrom v0.1.6
Downloaded yoke-derive v0.8.1
Downloaded version_check v0.9.5
Downloaded utf-8 v0.7.6
Downloaded urlencoding v2.1.3
Downloaded untrusted v0.9.0
Downloaded darling v0.23.0
Downloaded crc32fast v1.5.0
Downloaded linux-raw-sys v0.4.15
Downloaded cookie v0.18.1
Downloaded bitflags v2.11.0
Downloaded deranged v0.5.8
Downloaded convert_case v0.10.0
Downloaded subtle v2.6.1
Downloaded strum v0.26.3
Downloaded cassowary v0.3.0
Downloaded autocfg v1.5.0
Downloaded darling_macro v0.23.0
Downloaded adler2 v2.0.1
Downloaded stable_deref_trait v1.2.1
Downloaded signal-hook-registry v1.4.8
Downloaded linux-raw-sys v0.12.1
Downloaded 141 crates (15.7MiB) in 1.20s (largest was `linux-raw-sys` at 2.9MiB)
Compiling libc v0.2.182
Compiling proc-macro2 v1.0.106
Compiling quote v1.0.45
Compiling unicode-ident v1.0.24
Compiling cfg-if v1.0.4
Compiling find-msvc-tools v0.1.9
Compiling shlex v1.3.0
Compiling log v0.4.29
Compiling rustversion v1.0.22
Compiling signal-hook v0.3.18
Compiling parking_lot_core v0.9.12
Compiling itoa v1.0.17
Compiling smallvec v1.15.1
Compiling bitflags v2.11.0
Compiling serde_core v1.0.228
Compiling scopeguard v1.2.0
Compiling ident_case v1.0.1
Compiling strsim v0.11.1
Compiling zeroize v1.8.2
Compiling autocfg v1.5.0
Compiling crc32fast v1.5.0
Compiling untrusted v0.9.0
Compiling rustix v0.38.44
Compiling unicode-segmentation v1.12.0
Compiling httparse v1.10.1
Compiling lock_api v0.4.14
Compiling zmij v1.0.21
Compiling rustix v1.1.4
Compiling cc v1.2.56
Compiling rustls-pki-types v1.14.0
Compiling rustls v0.23.37
Compiling foldhash v0.1.5
Compiling bytes v1.11.1
Compiling paste v1.0.15
Compiling serde v1.0.228
Compiling either v1.15.0
Compiling equivalent v1.0.2
Compiling allocator-api2 v0.2.21
Compiling linux-raw-sys v0.4.15
Compiling heck v0.5.0
Compiling num-traits v0.2.19
Compiling convert_case v0.10.0
Compiling adler2 v2.0.1
Compiling simd-adler32 v0.3.8
Compiling instability v0.3.11
Compiling serde_json v1.0.149
Compiling itertools v0.13.0
Compiling indoc v2.0.7
Compiling miniz_oxide v0.8.9
Compiling once_cell v1.21.3
Compiling hashbrown v0.15.5
Compiling ryu v1.0.23
Compiling litrs v1.0.0
Compiling http v1.4.0
Compiling memchr v2.8.0
Compiling option-ext v0.2.0
Compiling static_assertions v1.1.0
Compiling linux-raw-sys v0.12.1
Compiling unicode-width v0.1.14
Compiling base64 v0.22.1
Compiling subtle v2.6.1
Compiling webpki-roots v1.0.6
Compiling iana-time-zone v0.1.65
Compiling flate2 v1.1.9
Compiling utf-8 v0.7.6
Compiling percent-encoding v2.3.2
Compiling unicode-width v0.2.0
Compiling document-features v0.2.12
Compiling syn v2.0.117
Compiling cassowary v0.3.0
Compiling urlencoding v2.1.3
Compiling castaway v0.2.4
Compiling dotenv v0.15.0
Compiling include_dir_macros v0.7.4
Compiling compact_str v0.8.1
Compiling lru v0.12.5
Compiling ring v0.17.14
Compiling chrono v0.4.44
Compiling ureq-proto v0.5.3
Compiling errno v0.3.14
Compiling getrandom v0.2.17
Compiling mio v1.1.1
Compiling dirs-sys v0.5.0
Compiling signal-hook-registry v1.4.8
Compiling dirs v6.0.0
Compiling include_dir v0.7.4
Compiling parking_lot v0.12.5
Compiling unicode-truncate v1.1.0
Compiling signal-hook-mio v0.2.5
Compiling crossterm v0.28.1
Compiling darling_core v0.23.0
Compiling derive_more-impl v2.1.1
Compiling serde_derive v1.0.228
Compiling strum_macros v0.26.4
Compiling derive_more v2.1.1
Compiling crossterm v0.29.0
Compiling darling_macro v0.23.0
Compiling strum v0.26.3
Compiling darling v0.23.0
Compiling ratatui v0.29.0
Compiling rustls-webpki v0.103.9
Compiling ureq v3.2.0
Compiling Raijin v0.1.8
Finished `release` profile [optimized] target(s) in 16.95s
Installing /home/kbushi/.cargo/bin/Raijin
Installed package `Raijin v0.1.8` (executable `Raijin`)初回起動時には ~/.config/Raijin/.env が自動生成され、以下のようなデフォルト値が入る。
ZONE="TNZ069"
STATE="TN"
LATITUDE="35.9626444"
LONGITUDE="-83.9167239"
TIMEZONE="America/New_York"デフォルトは Knoxville, TN なので、自分の地域に合わせて上記5項目を更新する。
設定
READMEの手順に沿って、次の情報を取得する。
- 緯度 (
LATITUDE) - 経度 (
LONGITUDE) - 州コード (
STATE) - 天気ゾーンID (
ZONE) - タイムゾーン (
TIMEZONE/ IANA形式)
ZONE は TNZ069 のような形式で、STATE は2文字コード(例: TN)を使う。
タイムゾーンは Asia/Tokyo のような IANA 名を設定する。
使い方
起動
/home/kbushi/.cargo/bin/Raijinにインストールされているので、直接実行をしてみる。
Raijin起動すると、以下の情報が1画面で確認できる。
- 現在の気温 / 体感温度
- 直近4日分の予報(4-cast)
- 時間ごとの気温推移
- 今夜の月齢
終了は q キーで行える。

参考
MasonStooksbury / Raijin
https://github.com/MasonStooksbury/Raijincrates.io - Raijin
https://crates.io/crates/Raijin
おわりに
Raijin は「サッと天気を確認したい」用途にちょうどよいTUIだと感じた。
設定に必要な情報は最初だけ用意すればよく、起動後はシンプルな操作で使える。
CLI中心の作業環境で天気確認を完結させたい場合に便利である。