Raycast Script Command機能を使って、日本語/英語の翻訳を即時実行できるようにした。 PLaMo翻訳モデルをローカルで動かすことで、ネットワーク接続不要で比較的高速な翻訳が可能。
これまでRaycastのAI機能を使い、Ollamaをバックエンドにしてqwen3:4bで日英翻訳していた。
ローカルでこの精度の翻訳ができることには感動ものなのだが、やはりプロプライエタリLLMと比較すると遅いし長文になると精度に難があるので少し不満があった。
そこで、Preferred Networksが公開しているplamo-translate-cliをRaycastのScript Commandから呼び出せるようにしようと考えた。
RaycastのScript Command機能は、任意のスクリプトをRaycastから実行できる機能である。shell script以外にも対応している。 メタデータをスクリプトのコメントとして埋め込み、フォルダを登録しておくことでRaycastが認識してくれる。
主要なパラメータ:
@raycast.title
: Raycastで表示されるコマンド名
@raycast.mode
: 出力モード(fullOutput, compact, silent, inline)
@raycast.argument1
: コマンドの引数定義
やっていることは単純で、引数として渡されたテキストを入力として plamo-translate
コマンドを実行するだけ。
#!/usr/bin/env bash
set -Eeufo pipefail
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Translate ja <-> en with PLaMo
# @raycast.mode fullOutput
# Optional parameters:
# @raycast.icon 🌐
# @raycast.argument1 { "type": "text", "placeholder": "text (ja/en)" }
# Documentation:
# @raycast.author h3y6e
# @raycast.authorURL https://raycast.com/h3y6e
export PATH="$HOME/.local/share/mise/shims:$PATH"
if ! command -v plamo-translate >/dev/null 2>&1; then
echo >&2 "Error: plamo-translate not found"
exit 1
fi
plamo-translate --input "$1"
dotfilesで公開している
# @raycast.mode fullOutput
翻訳結果は複数行になることがあるため、fullOutput
モードを使用している。これにより、翻訳結果全体が表示される。
export PATH="$HOME/.local/share/mise/shims:$PATH"
自分はmiseを使って各種runtimeを管理している。 Raycastから実行される際はPATHが通っていないため、明示的にmiseのshimsディレクトリをPATHに追加している。
スクリプトを ~/.config/raycast-script/
ディレクトリ(任意)に配置
実行権限を付与: chmod +x plamo-translate.sh
Raycastで Extensions → Script Commands → Add Directories
を選択し、上記ディレクトリを追加
mise設定ファイル(~/.config/mise/config.toml
)に以下を追加:
"pipx:pfnet/plamo-translate-cli" = { version = "latest", uvx_args = "-p 3.12" }
そして mise install
を実行
Raycast Script CommandとPLaMo翻訳CLIの組み合わせで、開発中の翻訳作業が格段に楽になった。 同様の仕組みで他のCLIツールもRaycastから呼び出せるようにできるので、色々試してみたい。