@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Raycast 所感

TL;DR 現時点では Alfred の方が多機能でカスタマイズしやすい。ただ、Raycast はビルトインで便利な機能がいくつかあり、甲乙つけ難い。

私物マシンで一週間ほど少し使った && 軽くドキュメントを見ながらちょっと込み入ったコマンドを試してみた感想。

Raycast Manual

Notion で作られている。センスが合わない。

Action Panel

Alfred でいうところの Cmd+1,2,3 みたいな「追加アクション」のこと。Cmd+K で統一されていて、押下するとコンテキストメニューが出るのはわかりやすい。

ここは互角。

Window Management

タイル型ウィンドウマネージャ的に、最前面のウィンドウの位置とサイズを変更できる機能。組み込みで入ってるのはとても良い。Alfred も

GitHub - pawelgrzybek/div: Div — a simple Alfred window manager

みたいなのをインストールすればできるっぽい(これはワークフロー)。もしくは、ウィンドウマネージャソフトを別途入れて Alfred から呼び出すとか。

ここは Raycast の勝ち。

Core (Extension)

ウリの Extension の一つ。クリップボードマネージャとか。これは Alfred と同じ。クリップボードマネージャのアイテムから Snippets を作れるのも同じ。

特に差がつく部分でもないので、互角。

Calculator (Extension)

計算機、通貨変換、時差計算など。これはかなり良い。通貨変換はリアルタイムで更新されていくし、$100 でも 100$ でもいい感じに解釈してくれるし、いい感じに変換先が JPY だと勝手に推測してくれた。Alfred にもワークフローがいくつかあるが、それを入れなくて済むのは楽。

時差計算も適当なキーワードで大体うまく拾ってくれるので直感的に使える。ただし ISO 8601 形式の日時は流石にうまく読んでくれなかった。時刻 + タイムゾーンまでなら大体うまくいく。Alfred にもワークフローがいくつかあるが(

GitHub - jaroslawhartman/TimeZones-Alfred: Alfred Workflow

とか)、そもそも選ぶのも面倒だし、これは入れてみたけど使い方に癖があって難しかった。

厳密に彼我の日時を計算したいなら

https://time.is/

を使うのが確実だが、これもうまく使うのは多少骨が折れる。結局そんなに簡単に済ませられるタスクではないが、Raycast はだいぶいい。

ここは Raycast の勝ち。

Script Commands

Raycast の中から外部スクリプトを呼び出せる機能。これは Alfred と比べて大いに見劣りした。

Alfred ワークフローのように、あるコマンドの実行結果を Alfred UI にリスト表示して、そのリストに対してインクリメンタルサーチで絞り込みをして、その結果に対してさらに何かする、みたいなものは構築できない。そもそも外部コマンドを呼び出したら結果を表示するだけっぽい。

これなら Alfred の Terminal / Shell とほぼ同等だが(こちらは Terminal 側に実行結果が出るが)、Raycast には > はないので、Raycast から直接実行したいコマンドはすべて Script Commands を作らないといけない事になる。当然そんな面倒なことはしないので単に Terminal を開くだけになると思うが。

Script Commands の詳細については GitHub - raycast/script-commands: Script Commands let you tailor Raycast to your needs. Think of them as little productivity boosts throughout your day.

にまとまっている。

ここは Alfred の勝ち。

Web 検索とかを Raycast からできる機能。Alfred の Web Search と同じ。UI がちょっと違う。

f:id:a666666:20211222220119p:plain

f:id:a666666:20211222220203p:plain

検索クエリのオプションを Raycast UI 内のフォーム項目というかプレースホルダ的に入力できる UI はおしゃれで一見便利そうだが、実際はそんな悠長かつ丁寧に入力したりしないと思う(手癖でバババッと入力してッターン!ってやるはず)。アクションのオプションとかも Alfred の方が細かく設定できる。

これは Alfred の勝ち。

Fallback Commands

入力したキーワードにヒットするアイテムがなかった時のフォールバック先を指定できるよ、という機能。Alfred にも Fallback Searches がある。どちらもあまり意識して使ってないが、特に差はないように見える。

ここは互角。

Create Extension / Raycast API

Raycast で凝ったことをやりたい場合は Extension を作る事になるようだ。Developer 向けに Extension の作り方や API リファレンスがある。

Introduction - Raycast API

Extension は個人用というよりは Store で配布・販売するためのものという位置づけのようで、Extension を作るためには Store のアカウント作成が必要。お金がかかるかは調べていないが、Store で配布しない限りは無料だと思う。

Extension は React + TypeScript で書くようだ。Doppler Share Secrets example をみるとわかりやすいが、要するに Raycast ウィンドウ内に React コンポーネントがレンダリングされて、入力イベントとかをフックして任意の処理が書ける、というものらしい。ランタイムは Node.js。

ここで自前の何かを作らず、ビルディングブロックとしてありものかつポピュラーなものを採用したのは目の付け所が良いと思う。Alfred Workflow の、あの Yahoo! Pipes のミニチュアみたいな GUI よりは、本気で作り込む際はかえってやりやすいかもしれない。

ただまあ、Asana とか Jira とか GitHub とかが既存の Extension として紹介されているように、あくまで外部 SaaS とかとの連携に主眼が置かれていそうなので、Alfred Workflow の代わりに作るようなものじゃない気がする。

これは方向性の違いであり優劣を比較するものではない気がするので、互角。

FAQ

そもそも FAQ に、Alfred との違いは?という項目があり、そこでもサードパーティ製品との深い統合と、最初からエクステンションが用意されているものが多いことが強みとして挙げられている。

結論

通貨・時差変換は外部サービスを使えば十分だし、毎日何度もやることではない。とすると、何度もやる仕事の効率化を比較的簡単にできそうな Alfred の方が、現状の自分のユースケースには向いていそう。