niri でローカルLLMをキー一発で呼び出す

2026-09-25

文章を書いていて「これ要約したい」「英語にしたい」と思うたびに、ブラウザのタブを開いて AI にコピペするのは面倒だ。しかもその内容は、どこかのサーバに送られている。

手元の LLM を使って、選択したテキストをその場で処理する。 これを niri のキー一発でやる手順をまとめる。

ゴール

必要なもの

llama-server の起動例:

llama-server -m ~/ai/models/Qwen3-8B-Q4_K_M.gguf -c 8192 --jinja --port 8080

systemd のユーザーサービスにしておくと、ログイン後ずっと使えて便利だ。

shirube を入れる

配管役は shirube(Rust 製)。選択テキストを拾って、llama-server に流し、結果を返す。

git clone https://github.com/setsu-shiomi/shirube
cd shirube
cargo build --release

~/.local/bin/shirube にラッパーを置くと、どこからでも呼べる:

#!/usr/bin/env bash
exec "$HOME/Projects/shirube/target/release/shirube" "$@"
chmod +x ~/.local/bin/shirube

niri にキーを割り当てる

~/.config/niri/config.kdl に追記する。

// shirube のウィンドウをフローティングで開く
window-rule {
    match app-id=r#"^shirube$"#
    open-floating true
    default-column-width { proportion 0.6; }
    default-window-height { proportion 0.7; }
}

binds {
    // 選択テキストを要約して、クリップボードと通知へ
    Mod+Shift+G { spawn-sh "shirube run summarize --copy --notify"; }
    // アクション選択の TUI
    Mod+Shift+A { spawn "foot" "--app-id=shirube" "-e" "shirube" "tui"; }
    // 音声入力 → 文字起こし → 要約
    Mod+Shift+W { spawn "foot" "--app-id=shirube" "-e" "shirube" "voice" "--action" "summarize"; }
}

設定は自動でリロードされる。文法を確認したいときは:

niri validate

使う

  1. ブラウザやエディタでテキストをハイライト
  2. Mod+Shift+G
  3. 数秒〜数十秒で、要約がクリップボードに入り、通知で表示される

翻訳したいときは translate、誤字を直したいときは proofread に変えるだけ。shirube actions で一覧が見られる。

応用

アクションは設定で増やせる(~/.config/shirube/config.toml)。アクションごとにモデルも指定できるので、軽い処理は小さいモデル、重い処理は大きいモデルに振り分けられる。

手元の資料を根拠に答えさせたいときは RAG:

shirube ask --rag "この端末の省電力設定は?"

正直な注意点

まとめ

クラウドに送らず、選択テキストをその場で処理する環境は、思ったより簡単に作れる。キー一発で要約が手に入るのは、想像以上に快適だ。

コードは MIT で公開している。