🤖HermesBlog
Hermes Official Tutorials · パート 48/9/2026

チュートリアル4: Hermesのアップデートとアンインストール

Tutorial 4: Updating & Uninstalling Hermes — easy-to-understand guide based on official docs

Hermes tutorial

チュートリアル4: Hermesのアップデートとアンインストール

Hermes Agentチュートリアルシリーズへようこそ!今回の記事では、すべてのユーザーがいつか知る必要があることについてお話しします。それは、Hermesを最新の状態に保つ方法と、お別れの時が来たときの対処法です。心配しないでください — 聞こえるほど複雑ではありません。

Hermesのアップデート: たった1つのコマンドで

Hermesをアップデートする最も簡単な方法は、たった1つのコマンドを使うことです:

hermes update

これだけです。このコマンドがすべての面倒な作業を代わりにやってくれます。mainブランチから最新のコードを取得し、依存関係を更新し、前回のアップデート以降に追加された新しい設定オプションについても質問してくれます。かなり便利ですよね?

アップデート中に実際に何が起こるのか?

舞台裏で何が行われているのか気になるかもしれませんね。内訳は以下の通りです:

  1. アップデート前のスナップショット — 何かを変更する前に、Hermesは重要な状態ファイル(ペアリングデータ、cronジョブ、config.yaml.envなど)の軽量スナップショットを保存します。1 GiBを超えるファイルはスキップされるため、巨大なデータベースがあっても処理が遅くなることはありません。このスナップショットはインストール内のすべてのプロファイルに対して取得され、それぞれが独自のstate-snapshots/ディレクトリに保存されます。

  2. Git pull — Hermesはmainブランチから最新のコードを取得し、サブモジュールを更新します。

  3. プル後の構文検証+自動ロールバック — プル後、Hermesはすべてのコマンドが起動時に必要とする9つの重要なファイルをチェックします。解析に失敗するファイルがある場合(例えば、マージ競合マーカーが残っている場合など)、Hermesは自動的に以前のバージョンにロールバックし、シェルが起動可能な状態を維持します。修正が上流に反映されたら、hermes updateを再実行するだけです。

  4. 依存関係のインストールuv pip install -e ".[all]"を実行して、新規または変更された依存関係を取得します。

  5. 設定の移行 — 新しい設定オプションを検出し、設定するように促します。

  6. ゲートウェイの自動再起動 — 実行中のゲートウェイがリフレッシュされ、新しいコードがすぐに反映されます。サービス管理下のゲートウェイ(Linuxのsystemd、macOSのlaunchd)はサービス管理者を通じて再起動され、手動のゲートウェイは自動的に再起動されます。

設定プロンプトをスキップした?問題ありません!

アップデート中に設定プロンプトをスキップした場合でも、後で追いつくことができます:

hermes config check    # 不足しているものを確認
hermes config migrate  # 対話形式で追加

別のブランチからのアップデート

デフォルトでは、hermes updateorigin/mainを追跡します。しかし、リリース候補版やフィーチャーブランチをテストしたい場合はどうすればいいでしょうか?--branchフラグを使いましょう:

hermes update --branch release-candidate
hermes update --check --branch experimental   # どれだけ遅れているかプレビューするだけ

ローカルのチェックアウトが別のブランチにある場合、Hermesは未コミットの作業を自動的にスタッシュし、ターゲットブランチに切り替えて、プルを実行します。ローカルに存在しないブランチは、origin/<名前>から自動的にトラッキングされます。ブランチがどこにも存在しない場合、コマンドはきれいに失敗し、スタッシュした変更を復元します。

パークされたブランチはどうなる?

チェックアウトがフィーチャーブランチにある場合、hermes updateはスマートに処理します:

  • 完全にマージされたブランチ — Hermesは完全にマージされたことを通知し、mainに切り替えます。
  • 未マージのコミット、クリーンなツリー — Hermesはアップデートを進めるためにmainに切り替えます(デスクトップアプリやcronジョブなどの非対話型呼び出し元にとって重要です)。コミットは変更されず、Hermesはブランチ名とそこに戻る方法を大きな通知で表示します。

ブランチ上でカスタムパッチを意図的に維持している場合は、config.yamlでこれを設定します:

updates:
  parked_branch_strategy: update_in_place

これにより、ブランチから切り替える代わりに、origin/mainがブランチマージされます。可能な場合はファストフォワード、分岐した場合はセーフティタグを作成し、競合時にはきれいに停止します。

非対話型アップデート中のローカル変更

ターミナルでhermes updateを実行すると、Hermesは未コミットの変更をスタッシュし、プルした後、復元するかどうかを尋ねます。しかし、アップデートがターミナルなしで実行される場合(デスクトップアプリなど)、ツリーがダーティな場合、Hermesはアップデートをスキップします — ブランチ名とどれだけ遅れているかを示す大きな警告付きで。アップデートが成功したふりはしません!

Hermesのアンインストール

お別れの時が来たら、アンインストールは簡単です。正確な削除手順については、お使いのプラットフォーム固有のドキュメントを確認してください。ただし、一般的にはHermesバイナリを削除し、作成された設定ディレクトリをクリーンアップする必要があります。

まとめ

Hermesのアップデートはhermes updateで簡単に行えます。組み込みのセーフティネット — スナップショット、自動ロールバック、ブランチ処理 — により、安心してアップデートできます。そして、離れる必要がある場合も、アンインストールは同じくらい簡単です。

シリーズの次のチュートリアルをお楽しみに!

📖 公式ドキュメント

この記事は Hermes Agent の公式ドキュメントに基づいています:公式ドキュメント › getting-started/updating