Claude Code に長い作業を任せると、esc to interrupt をぼんやり眺める時間が積み重なります。
別のことをするには短く、じっとしているには長いその時間に、セッション下部のステータスバーでニュースの見出しを
一行ずつ読めたらと思って作りました。
何をするものか
- 既存のステータスバー(HUD)の下の行に、地域に合わせた見出しが6秒ごとにローテーション表示されます。既存の
ステータスバーはそのまま維持されます。 - 単なる翻訳ではなく、その地域の実際の現地メディアから取得します。韓国なら聯合ニュース、
日本ならNHK、フランスならLe Monde、ドイツならTagesschau/Spiegel、スペインならEl País、
ブラジルならG1、英語圏ならBBC/NPRといった具合です。該当メディアが落ちていたりブロックされていたりする場合は、Google News
のロケールフィードに自動でフォールバックします。現時点では上記メディアが基準で、今後さらに多様なプラットフォームや
記事が混ざって、より充実していく予定です。 - 見出しは OSC 8 ハイパーリンクなので、ほとんどのターミナルでそのままクリックして記事へ移動できます。
- 韓国語を含む8言語、分野(topic: テック/ビジネス/スポーツなど)を選択できます。
- 見出しの色とローテーション周期(デフォルト6秒)も設定で好みに合わせて調整できます。
なぜ / 既存のものと何が違うのか
ステータスバーに情報を追加するツールは多いですが、そのほとんどは既存のステータスバーを置き換えます。newsline は
置き換えではなく一行を付け足す方式なので、すでに使っている HUD/statusline と併用できます。
また、言語コードに適当なニュースを紐づけるのではなく、ロケールごとに信頼性の高い自国メディアを
最優先にし(エッジサービスが地域・分野別に新鮮なソースを選びます)、フォールバックにだけ Google News を
使います。
そしてステータスバーは Claude Code から非常に頻繁に呼び出されるため、絶対にネットワーク待ちをしてはいけません。
そのため:
- バックグラウンドで RSS をローカルに取得し(python3 標準ライブラリのみ、依存関係なし)
- 見出し N 件をキャッシュに保存したうえで
- ステータスバー呼び出し時にはキャッシュから即座にレンダリングし、壁時計時間を基準にローテーションさせます。
更新は single-flight ロックがかかったバックグラウンドプロセスが担当するため、重複実行はありません。
試してみる(登録・メール不要)
curl -fsSL https://raw.githubusercontent.com/itdar/newsline/master/install.sh | sh
npm(npm i -g newsline-cli && newsline init)、Homebrew、Claude Code プラグイン
マーケットプレイス(/plugin marketplace add itdar/newsline)からもインストールできます。次のメッセージ
送信時点から表示され、再起動は不要です。newsline uninstall で以前のステータスバーが
完全に復元されます。
プライバシー
収集・表示はすべてローカルです。外部に送られるのは、地域ソース選定のためのおおまかなコンテキスト
(言語・国・分野など、トラッキングIDなし)だけです。~/.config/newsline/config.json に
"api": "off" と "endpoint": "off" を入れると完全ローカルモードになり、ニュースフィード以外の
どこにも接続しません。
GitHub: https://github.com/itdar/newsline
どんなニュースソースや分野がさらに必要か、フィードバックを特に歓迎します。
まだコメントはありません。