これは成功した話だ。久しぶりに。
外出中に思いついたことをどうにかしたかった
VPSにClaudeが常駐するようになって、次に考えたのが「外出中の使い方」だった。
パソコンの前にいるときはVSCodeからClaudeに指示できる。
でも外出中に何か思いついたとき、スマホからわざわざTeraTermやTermiusを開いてコマンドを打つのは面倒だ。
歩きながらとか、電車の中とか、もっと手軽に指示を出したい。
理想は「声で喋るだけ」だった。
iPhoneには音声入力の機能がある。
ショートカットアプリを使えば、音声入力したテキストを何かに渡す自動化が作れる、とGeminiに教わった。
「それでClaudeに繋げられる?」と聞いたら「できます」と言われた。
さっそくやってみようとしたが、思っていたより複雑だった。
ショートカットアプリと格闘した
iPhoneのショートカットアプリは、アクションを積み上げて自動化フローを作るツールだ。
「音声入力を受け取る→テキストに変換する→どこかに送る」という流れを、ブロックを並べるように作っていく。
Claudeにフローを教えてもらいながら設定を進めた。
Claudeの説明でわかりにくいところはGeminiに補足してもらう、という役割分担だ。
仕組みを作るのはClaude、理解を助けるのはGemini、という感じで使い分けていた。
音声を受け取るアクション、テキスト化するアクション、次の処理に渡すアクション。
一つひとつは難しくないが、繋ぎ方を間違えると動かない。
そしてもう一つ地味につらかったのが、GeminiやClaudeが教えてくれる文言と、実際のアプリに表示されている文言が微妙に違うことだ。
「”テキストを取得”というアクションを追加してください」
と言われても、アプリの中に「テキストを取得」という名前のアクションが見当たらない。
似たような名前のものはあるが、それが正解なのかどうかわからない。
「”入力から読み取り”のことかな」
「”クリップボードのテキスト”はちょっと違うな」と一つひとつ確認していたら、それだけで時間が消えた。
AIに教わる以上、画面の表示がアップデートで変わっていたり、日本語と英語で微妙にニュアンスがずれていたりすることはよくある。
それはわかるが、わかっていても探すのは一苦労だ。
特に苦労したのがテキストの受け渡しだ。
あるアクションの出力を次のアクションの入力に繋げる操作で、何度やってもうまくいかない箇所があった。
Geminiに「ここのペーストのやり方がわからない」と伝えたら、画面の操作方法を詳しく教えてくれたが、それでもなかなか思い通りにいかなかった。
ショートカットアプリ特有の操作感があって、慣れていないと直感的に動けない。
エラーメッセージもわかりにくい。
何が悪いのかわからないまま、同じ操作を何度も繰り返した。
Dropboxを経由させることにした
直接ClaudeのAPIに音声テキストを渡す方法も考えたが、認証の設定が複雑になりそうだった。
Claudeに相談したら、別の方法を提案してくれた。
Dropboxを経由させる、という方法だ。
流れはこうだ。
iPhoneのショートカットで音声をテキスト化して、そのテキストをDropboxのファイルに保存する。
VPS側ではClaudeがDropboxを定期的に監視していて、新しいファイルが来たら内容を読み取って処理する。
処理結果をメールで送ってくる。
一見複雑に見えるが、それぞれのステップは単純だ。
iPhoneはDropboxにファイルを置くだけ。
ClaudeはDropboxのファイルを読んでメールを送るだけ。
直接繋げようとするより、Dropboxを中継地点にしたほうがシンプルだった。
DropboxアプリはiPhoneにも入っていたので、ショートカットからDropboxに保存するアクションはすぐに設定できた。
VPS側の設定はClaudeに丸投げした
iPhone側の設定が終わったら、次はVPS側だ。
Dropboxを監視してファイルが来たらメールを送る、というプログラムを作る必要がある。
これはClaudeに全部任せた。
「Dropboxの特定のフォルダにファイルが追加されたら、内容を読み取って私のメールアドレスに送るスクリプトを作って」と伝えた。
しばらくしてClaudeがスクリプトを作ってくれた。
tmuxのセッションで動かし続ける設定も一緒にやってもらった。
自分でコードを書いたわけではない。
何をしているのか完全に理解しているわけでもない。
でも動いた。
この割り切り方は、この10日間で学んだことの一つだ。
仕組みを全部理解してから使おうとしなくていい。
動けばいい。理解は後からついてくる。
喋ったらメールが来た
全部設定し終えて、試してみた。
iPhoneのショートカットを起動して、マイクに向かって喋った。
買い物のメモとか、思いついたこととか、忘れそうなことをとにかく喋る。
ショートカットが動いて、Dropboxにファイルが保存された。
10分ほど待った。
メールが来た。
来た。ちゃんと来た。
スマホに向かって喋っただけで、VPSのClaudeが動いて、メールが送られてきた。
自分で作った仕組みが、自分の知らないところで動いている。
この感覚は今でも覚えている。
やりたかったのはシンプルなことだ。
手軽にメモを取りたい。
それだけ。
わざわざスマホのメモアプリを開かなくても、喋るだけで記録できて、定時にまとめてメールで届く。
内容によって返し方が変わる
基本のメモ機能が動いたので、次に「内容によって対応を変えられないか」とClaudeに聞いてみた。
できる、と言われたので実装してもらった。
質問形式で喋ると、メールで回答が来る。
備忘録として喋った内容は、夜の定時にまとめてメールが来る。
「これやっといて」系の指示は、作業が終わったら完了報告が来る。
ただ、これがなかなか思い通りにいかなかった。
文脈の読み取りが微妙で、返事が来たり来なかったりした。
「これは質問なのか指示なのかメモなのか」の判断がズレると、期待していた動きにならない。
プロンプトを何度も調整しながら精度を上げていく作業が続いた。
それと、初期のClaudeは自分の知識の範囲内でしか答えてくれなかった。
検索して最新情報を調べてほしいつもりで質問しても、Claudeが知っている範囲で答えが返ってくる。
「〇〇市の人口は何人?」と喋ったら、調べた数字ではなく〇〇市のホームページのURLが貼り付けられたメールが届いたことがある。
それじゃない。
こういう細かい調整に、けっこう時間を使った。
全部メール一本で完結する。
スマホの通知を見れば何が起きているかわかる。
外出中でもVPSで何かが動いているのを感じられる。
この仕組みが完成してから、VPSとの距離感がぐっと縮まった気がした。
声で操作できるようになったことの意味
最初の目標は「声で喋るだけでClaudeに指示を出したい」だった。
それが実現できた。
エンジニアではないので、コードは書けない。
でもGeminiに教わりながら設定を組み合わせて、Claudeに実装を任せれば、こういう仕組みが作れる。
必要なのはプログラミングの知識ではなく、「何をしたいか」を言語化する力と、諦めずに試し続けることだ。と、このときは思った。
SSH鍵で丸1日溶かした直後だったので、余計に嬉しかった。
← 前の話|第6話|SSH鍵の設定に丸1日溶かした話 | 次の話|第8話|自動ブログが翌日止まってたけどClaudeが勝手に直してた話 →

コメント