どうもTORAです。
Instagramでよく見ますよね。「Hey! Jarvis wakeup! 」と声をかけると、「Good evening sir.」と返事をして画面が立ち上がり、そのままリアルタイムでAIとの会話が始まる動画。
もともとのJarvisは、マーベルの映画『アイアンマン』に登場する、トニー・スタークが作ったAIアシスタントです。あの動画は、映画のJarvisのように声で呼びかけて会話する体験を再現したものですね。
僕も、自分用のAIエージェントを「Jarvis」と呼んで作り、運用しています。
実は、自分用のJarvisを作って動かし始めること自体は、それほど難しくないんです。いろんな作業をJarvisに任せたり、まあ、面白いことができます。
実際に運用してビジネスで活かしたりするには、いろいろと工夫が必要ですが、作るのは簡単です。
今日は、そんなJarvisの構築方法を紹介したいと思います。
僕のJarvisの土台は、Hermes Agentというソフトです。会話するだけでなく、ファイルを読み書きしたりコマンドを実行したりできるAIエージェントで、Jarvisはそれに僕がつけた呼び名です。「Jarvis」という製品があるわけではないので、入れるのはHermes Agentで、名前は後から自分の好きなものにつけられます。

今回はこれをMacに入れて、AIと会話し、ファイルを読んだり作ったりしてもらうところまで進めます。動画のような音声での呼びかけや画面の演出は、その土台を作った先の話です。
用意するもの
この記事の手順で使うのは、次のものです。
- Appleシリコン(M1、M2などのMシリーズのチップ)を搭載したMac。Appleメニューの「このMacについて」で、チップの欄を見れば分かります。
- インターネット接続
- AIの接続先のアカウント(この記事では、ChatGPTをすでに契約している場合の接続を例にします)
- ターミナルから入れる場合だけ、Git、curl、tar、SHA-256の確認ツール(確認方法は後で書きます)
ちなみに、Macが必須というわけではありません。Hermes AgentはWindowsやLinuxにも対応しています。クラウドのAIを使う構成なら、PCの中で大きなAIモデルを動かす必要はありません。今回は僕が使っているMacでの手順を紹介しますが、Macを持っていないから始められない、という話ではないです。
この記事の手順はAppleシリコンのMac向けです。Windows・Linux・Intel Macで始める場合は、公式の対応プラットフォームと導入手順を確認してください。
僕の環境はMac mini M4 Pro、ユニファイドメモリーは48GBです。ただ、この構成にしたのはローカルLLMも動かすためでした。この記事ではAIの処理をクラウドのサービス側に任せるので、同じ構成は要りません。必要なメモリー量は、クラウドのAIを使うか、Macの中でモデルを動かすかで変わってきます。
最初の構築では、ローカルモデル、Slack、Obsidian、定期実行(cron)、追加料金のかかるツールはどれも使いません。
Hermesの本体や会話履歴はMacにありますが、クラウドのAIを使う場合、会話の内容やAIに読ませたファイルの中身は接続先のサービスへ送られます。今回の会話を試すだけなら、常時稼働用の専用Macを用意する必要はなく、使うときに起動すれば始められます。定期的に動かす段階になったら、稼働時間やスリープを別に考えます。
お金がかかるところ
お金の話で気にしておきたいのは、AIの接続先です。Hermesからつなぐ方法には、たとえば次のようなものがあります。
- Hermes公式にある「ChatGPT or Codex Subscription」:ChatGPTのアカウントで認証する経路で、この記事ではこれを使います。APIキーを新しく発行する手順とは別です。
- OpenAIのAPIキーでつなぐ方法:使った分だけかかる従量課金で、ChatGPTの契約とは請求が別です。
- Nous Portal:公式が案内している、サブスクリプション型のサービスです。
ChatGPTで認証できることと、無制限に使えることは別です。OpenAIの公式案内では、OpenAI自身のCodexをChatGPTのプランで使う場合、利用量や上限はプランやタスクによって変わるとされています。Hermes経由の接続にそのまま当てはまるかは、この案内からは分かりません。Hermesで使える契約かどうかと利用条件は、認証画面や両サービスの案内でも確認してください。
ChatGPTを契約していない人が、この記事のために新しく契約する必要はありません。いま使っているAIサービスがHermesの接続先一覧にあるか、先に確かめてみてください。ただ、一覧に名前が載っていても、そのサービスの月額契約がそのまま使えるとは限らず、API料金や追加クレジットが必要な経路もあります。どれを選ぶにしても、料金はそれぞれのサービスの条件を見てから決めてください。
Hermesを入れる
Hermesには、画面で操作するDesktopアプリと、ターミナルで使うCLI版があります。どちらも同じ中身を動かしていて、設定も会話の履歴も共有されます。
入れ方は次の二つです。初回はどちらか一方だけにすると、どの環境を設定しているのか追いやすくなります。
- A. Desktopアプリの完全版で入れる:この記事では、アプリ本体と必要な部品を含むDMGを使う方法を紹介します。
- B. ターミナルから入れる(CLI版)
ターミナル版で入れた後でDesktopアプリも使いたくなったら、公式には hermes desktop で今の設定を使う方法もあります。ただ、完成済みのDMGを入れるのとは違って、ソース版では追加の準備が必要になる場合があります。
A. Desktopアプリで入れる
- Hermes Desktopの公式ページからHermesのWebサイトへ進み、macOS用の完全版DesktopアプリのDMGをダウンロードします。この記事で使うのは、Hermes-Setup.dmgやリモート接続用のLight版ではない完全版です。
- DMGを開いて、Hermes.appを「アプリケーション」フォルダへコピーします。
- 「アプリケーション」フォルダからHermesを起動します。
この完全版のパッケージには、エージェント本体とPython、必要な部品、画面が最初から入っています。そのため、初回起動のときに土台を組み立てる処理はありません。
紛らわしいのが、名前の似た別物が二つあることです。一つは「Hermes-Setup」で、ソースコードを取ってきてアプリを組み立てるインストーラです。もう一つの「Light」は、リモート接続専用の版です。どちらもこの完全版とは違います。
初回起動の案内では、AIの接続先をその場で決めずに先へ進むこともできます(Choose provider later)。接続のしかたは「AIをつなぐ」で書きます。
B. ターミナルから入れる(CLI版)
ターミナルは、Finderの「アプリケーション」→「ユーティリティ」にあります。Command+スペースで「ターミナル」と入力しても開けます。
まず、前提のツールがあるか確かめます。
git --version
which curl tar shasum
git --version でバージョンが表示されれば大丈夫です。Gitが入っていないMacでは、Appleの開発ツールのインストールを促す表示が出ることがあるので、その場合はAppleの案内に沿って入れてください。which の行で3つのパスが表示されれば、残りもそろっています。
公式のインストーラは、Hermesのソースコードを取得し、Python、Node.js、ripgrep、FFmpegといった動作に必要なツールを専用の場所に用意します。ブラウザ操作の部品と、画面操作(computer use)の部品も初期設定で入ります。コマンドは ~/.local/bin/hermes に置かれ、設定や会話のデータは ~/.hermes/ に保存されます(~ は自分のホームフォルダのことです)。
実行するのは、公式に書かれているこの1行です。公式サイトから取得したスクリプトをそのまま実行するので、URLが公式のものかを確認してから実行してください。頭に sudo は付けません。
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
途中でセットアップが始まります。公式の説明では、新規インストールのセットアップにはQuick Setup、Full Setup、Blank Slateの3つのモードがあります。Quick SetupはNous Portalの契約を使うやり方で、接続先を自分で選ぶならFull SetupかBlank Slateです。ChatGPTを使う場合も、メインのAI接続をここで設定します。
今回使わない外部サービスのAPIキーや、メッセージアプリとの連携は設定しません。AIの選択は後から hermes model でやり直せます。外部サービスのAPIキーが必須に見えたり、案内にない設定を求められたりしたら、推測で入力せずにいったん止めてください。
失敗すると、最後の数行とログの場所(~/.hermes/logs/install.log)が表示されます。sudo を付けて実行し直したり、設定をいじって回避したりはせず、ログを読んでから公式のトラブルシューティングを見てください。
終わったら、ターミナルで新しいウィンドウを開き(Command+N)、コマンドが見つかるか確かめます。
command -v hermes
最後が .local/bin/hermes で終わるパスが表示されれば大丈夫です。何も表示されないときは source ~/.zshrc で設定を読み込み直してから、もう一度試してください。
AIをつなぐ
Desktopアプリの場合
「Settings」→「Providers」→「Accounts」から接続先のアカウントにサインインし、「Settings」→「Model」でふだん使うモデルを決めます。

入力欄のマイクの左にもモデルの切り替えがあります。こちらは基本的にその会話や画面上での選択で、ふだんの設定(既定のモデル)は変えません。ただ、まだ既定のモデルが決まっていない新しい環境では、ここで最初に選んだものが既定として保存されると公式に書かれています。ふだん使うモデルを変えるときは、Settings→Modelのほうを使います。
ターミナル版の場合
次のコマンドで接続先を選びます。
hermes model
ChatGPTでつなぐ場合は、Hermes公式の接続先一覧にある「ChatGPT or Codex Subscription」を選びます。公式資料には「OpenAI Codex」という名前でも出てきます。標準の認証は、案内されたURLをブラウザで開き、表示されたコードを入力するデバイスコード方式です。
サインインとモデル選びの注意
表示されたURLがOpenAIの認証先であることと、使うアカウントが合っていることを確かめてから、画面の案内に沿ってログインします。パスワードや認証コードを、AIとのチャットへ貼り付ける必要はありません。
接続先の表記は、版によって変わることがあります。DesktopとCLIで表記が違っていても、契約で使う経路とAPIキーの経路を区別して選んでください。
モデルは、表示された候補から選びます。まずはその接続先で提示される既定モデルのまま、普通に会話ができるかを確かめます。利用枠を使い切ったときに追加購入を勧められても、最初のうちは買わずに止めておくのが無難です。
最初の会話
Desktopアプリでは、新しいチャット(Command+N)を開きます。ターミナル版では、次のコマンドで始めます。
hermes
見た目の新しい画面がよければ hermes --tui もあります。どちらも会話や設定は共通です。ターミナル版では、最初に選んだモデルや接続先が表示されるので、合っているか見てください。
最初は、結果を確かめやすい依頼にしておきます。
こんにちは。日本語で、2〜3文で自己紹介してください。
返事が来たら、続けてもう一言送ります。
今の返事を1文に縮めてください。
エラーなしで返事が来て、2回目のやり取りも普通に続けば、ここは完了です。公式のクイックスタートにも、普通の会話ができないうちは機能を足さないように、と書かれています。ターミナル版では次回、hermes -c で直前の会話の続きから始められます。
ファイルを1つ読ませて、1つ作らせる
ここからは、この記事用に考えた練習です。実際の仕事でこの通りに運用している例ではありません。
先に注意があります。Hermesは、ファイルを読むだけでなく、変更や削除もできます。作業するフォルダを指定しても、そのフォルダの外を触れなくなるわけではありません。承認機能や隔離の仕組みと、会話で伝える指示は別物です。なので最初の練習では、次のことを守っておきます。
- 実際のデータや仕事の資料、パスワードのような秘密の情報を近くに置かない
- 確認なしで実行するモード(YOLOなどと呼ばれるもの)は有効にしない
- macOSから画面収録やアクセシビリティなどの許可を求められても、今回の作業に関係ないものはまとめて許可しない
練習用のファイルを用意する
準備は自分の手でやります。
- Finderで「移動」→「ホーム」(Shift+Command+H)を開きます。「Projects」フォルダがなければ作り(Shift+Command+N)、その中に「jarvis-practice」というフォルダを作ります。
- テキストエディットで新しい書類を開き、「フォーマット」→「標準テキストにする」を選びます。「これは練習用のメモです。中身に意味はありません。」と書いて、jarvis-practiceの中へ
note.txtという名前で保存します。 - Finderでnote.txtを選び、Optionキーを押しながら右クリックして「”note.txt”のパス名をコピー」を選びます。
Hermesに頼む
まず、読むだけの依頼をします。
次のファイルを読んで、中身をそのまま表示してください。ファイルは変更しないでください。
(ここにコピーしたパスを貼り付け)
中身が合っていたら、次は新しいファイルを作ってもらいます。
同じフォルダに summary.txt を新しく作り、note.txt の内容を1行で要約して書いてください。既存のファイルは変更も削除もしないでください。
最後にFinderで、summary.txtができていることと、note.txtが元のままなことを確かめます。途中で確認を求められたら、何をしようとしているかを読んでから判断してください。フォルダの外を触る操作や、削除が含まれていたら断ります。
ターミナル版なら、cd ~/Projects/jarvis-practice でこのフォルダに移ってから hermes を起動すると、話がスムーズです。ただ、これも作業場所を伝えているだけで、外側を守る仕組みではありません。
好みで名前と話し方を変える(SOUL.md)
ここは任意です。会話とファイル作業の確認を先に終えてからで大丈夫です。
Hermesの人格や話し方は、SOUL.mdというファイルで決まります。ターミナル版で入れた場合、場所は ~/.hermes/SOUL.md です。Desktopアプリの完全版のデータ保存先は、公式のインストール表では「プラットフォーム既定の場所」とされていて、Macでも同じ場所かはこの記事では確かめられていません。SOUL.mdは初回に自動で作られ、すでにある場合は上書きされません。
ここで変えるのは、名前と話し方の2行だけにします。
- Finderで「移動」→「フォルダへ移動」(Shift+Command+G)を開き、
~/.hermes/と入力します。 - SOUL.mdがあったら、先に「書類」フォルダなどへコピーしてバックアップを取ります。
- SOUL.mdを右クリックし、「このアプリケーションで開く」→「テキストエディット」で開きます。ターミナルに慣れている人は、公式の例どおり
nano ~/.hermes/SOUL.mdでもかまいません。 - 今ある文章は消さずに残します。別の名前が書いてあれば、その名前の部分だけを書き換えます。そのうえで、たとえば次の2行を足します。
あなたの名前はJarvisです。
日本語のですます調で、短めに答えてください。
標準テキストのまま、ファイル名もそのままで保存します。
変更が反映されるのは、Hermesを開き直すか、新しい会話を始めたときです。新しい会話で「あなたの名前は?」と聞いてみてください。
SOUL.mdは話し方や性格を決めるファイルで、ここに「〇〇してはいけない」と書いても、権限の設定にはなりません。プロジェクト固有の決まりは別のファイル(AGENTS.md)に書くものとされていますが、今回はそこには手を付けません。
~/.hermes/ にSOUL.mdが見当たらなければ、別の場所に推測で作らず、実際に使っているデータ保存先を確認してください。HERMES_HOMEでデータの場所を変えている人は、$HERMES_HOME/SOUL.md が対象です。
うまくいかないとき
hermes: command not foundと出る:新しいウィンドウを開くか、source ~/.zshrcを実行します。それでもだめなら、~/.local/binがPATH(コマンドを探す場所の一覧)に入っているかを確かめます。- 返事が来ない、空っぽ、内容がおかしい:Desktopアプリなら「Providers」と「Model」の設定、ターミナル版なら
hermes modelで、接続先とモデル、サインインをやり直します。CLI版で原因を切り分けるときは、公式の診断コマンドのhermes doctorが使えます。Desktopだけで導入した場合に、このコマンドがMacのターミナルから使えるかは別に確認が必要です。 - 利用上限に達した:使っている接続先の利用枠を確認します。慌ててクレジットを買ったりAPI経路へ切り替えたりせず、契約の条件を確かめます。
- インストールに失敗する、権限の警告が出る:
sudoを付けたり、セキュリティ設定を緩めたりして無理に通さないでください。ログと公式の案内を見てください。 - SOUL.mdを変えても話し方が変わらない:実際に使っているデータ保存先のSOUL.mdを編集したか、中身が空でないか、新しい会話を始めたかを確かめます。ターミナル版の既定の場所は
~/.hermes/SOUL.mdです。 - 直そうとして
~/.hermes/を消さない:公式でも、アプリの修復のためにデータの場所を消さないよう書かれています。CLI版では、どの方法で入れたかをhermes doctorで確かめられます。Desktop版だけの場合は、このコマンドを使えるか別に確認してください。
