> **本プロジェクトは現在も活発に開発中です。** 機能は変更される可能性があり、一部が動作しなくなることもあります。問題に遭遇した場合や、アイデアがある場合は[Issue を作成してください](https://github.com/fathah/hermes-desktop/issues)。コントリビューションも歓迎しています!
## 言語
- English: `README.md`
- 简体中文: `README.zh-CN.md`
- 日本語: `README.ja-JP.md`
Hermes Desktop は、[Hermes Agent](https://github.com/NousResearch/hermes-agent)(ツール使用、マルチプラットフォームメッセージング、クローズドな学習ループを備えた、自己改善型 AI アシスタント)のインストール・設定・チャットを行うためのネイティブデスクトップアプリです。
CLI を手作業で管理する代わりに、本アプリではインストール、プロバイダのセットアップ、日常的な利用までを一箇所でガイドします。公式の Hermes インストールスクリプトを使用し、Hermes を `~/.hermes` に保存し、チャット、セッション、プロファイル、メモリ、スキル、ツール、スケジューリング、メッセージングゲートウェイなどを GUI で操作できます。
## インストール
### Windows
> **Windows ユーザーへ:** インストーラはコード署名されていません。初回起動時に Windows SmartScreen の警告が表示されます。「詳細情報」→「実行」をクリックしてください。
> **WSL ユーザーへ:** インストーラが `Switching to root user to install dependencies...` で停止する場合、Playwright が sudo パスワードを待っていますが、読み取るための TTY がありません。インストール中だけパスワードなしの sudo を許可し、完了後に元へ戻してください。
>
> ```bash
> echo "$USER ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/hermes-install
> # …インストーラを再実行し、完了したら:
> sudo rm /etc/sudoers.d/hermes-install
> ```
>
> [#109](https://github.com/fathah/hermes-desktop/issues/109) で追跡しています。
### Fedora (RPM)
```bash
sudo dnf install ./hermes-desktop-.rpm
```
> **Fedora ユーザーへ:** `.rpm` は GPG 署名されていません。署名検証を強制する設定の場合は、インストールコマンドに `--nogpgcheck` を追加してください。`.rpm` ビルドは自動アップデートに対応していません(`electron-updater` の制約)。アップデートする場合は新しい `.rpm` を再インストールしてください。
## プレビュー
Chat
 |
Profiles
 |
Models
 |
Providers
 |
Tools
 |
Skills
 |
Schedules
 |
Gateway
 |
Persona
 |
Kanban
 |
Office
 |
Settings
 |
## 機能
- **初回起動時のガイド付きインストール** — Hermes Agent のインストールを進捗表示と依存関係解決付きで案内します
- **ローカル / リモートバックエンド** — Hermes をローカル (`127.0.0.1:8642`) で実行するか、URL + API キーを使ってリモートの Hermes API サーバーに接続できます
- **マルチプロバイダ対応** — OpenRouter, Anthropic, OpenAI, Google (Gemini), xAI (Grok), Nous Portal, Qwen, MiniMax, Hugging Face, Groq、そしてローカルの OpenAI 互換エンドポイント (LM Studio, Ollama, vLLM, llama.cpp)
- **ストリーミングチャット UI** — SSE ストリーミング、ツール進捗インジケータ、Markdown レンダリング、シンタックスハイライト対応
- **トークン使用量のトラッキング** — プロンプト / 出力トークン数とコストをチャットフッターにリアルタイム表示。`/usage` スラッシュコマンドも利用可能
- **22 種類のスラッシュコマンド** — `/new`, `/clear`, `/fast`, `/web`, `/image`, `/browse`, `/code`, `/shell`, `/usage`, `/help`, `/tools`, `/skills`, `/model`, `/memory`, `/persona`, `/version`, `/compact`, `/compress`, `/undo`, `/retry`, `/debug`, `/status` など
- **セッション管理** — 全文検索 (SQLite FTS5)、日付別の履歴表示、会話の再開と横断検索
- **プロファイル切り替え** — Hermes 環境を分離した状態で作成・削除・切り替え可能
- **14 のツールセット** — Web、ブラウザ、ターミナル、ファイル、コード実行、ビジョン、画像生成、TTS、スキル、メモリ、セッション検索、Clarify、Delegation、MoA、タスクプランニング
- **メモリシステム** — メモリエントリの閲覧 / 編集、ユーザープロファイルメモリ、容量トラッキング、検出可能なメモリプロバイダ (Honcho, Hindsight, Mem0, RetainDB, Supermemory, ByteRover) に対応
- **ペルソナエディタ** — エージェントの SOUL.md パーソナリティを編集・リセット可能
- **保存済みモデル** — プロバイダごとのモデル設定を CRUD で管理
- **スケジュールタスク** — 分単位 / 時間単位 / 日単位 / 週単位 / カスタム cron に対応する cron ジョブビルダー(15 種類の配信先)
- **16 種類のメッセージングゲートウェイ** — Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Mattermost, Email (IMAP/SMTP), SMS (Twilio/Vonage), iMessage (BlueBubbles), DingTalk, Feishu/Lark, WeCom, WeChat (iLink Bot), Webhooks, Home Assistant
- **Hermes Office (Claw3d)** — ビジュアルな 3D インターフェース。開発サーバーとアダプタの管理機能を備える
- **バックアップ、インポート、デバッグダンプ** — 設定画面からデータの完全なバックアップ / リストアとシステム診断が可能
- **ログビューア** — ゲートウェイとエージェントのログを設定画面から直接閲覧
- **自動アップデーター** — electron-updater を使ったアップデートチェックとインストール
- **i18n 対応** — 全画面に対応する英語ロケールを含む国際化フレームワーク。コミュニティ翻訳の受け入れ準備済み
- **テストスイート** — SSE パーサ、IPC ハンドラ、preload API サーフェス、インストーラユーティリティ、定数バリデーションを Vitest で検証
## 動作の仕組み
初回起動時、アプリは次の手順で動作します。
1. Hermes を**ローカル**で動かすか、**リモート**の Hermes API サーバーに接続するかを尋ねます。
2. **ローカルモード:** `~/.hermes` に Hermes が既にインストールされているかを確認します。なければ、依存関係 (Git, uv, Python 3.11+) を解決しつつ公式インストーラを実行します。
3. **リモートモード:** リモート API の URL と API キーを入力させ、接続を検証し、ローカルインストールをスキップします。
4. API プロバイダまたはローカルモデルのエンドポイントを尋ねます。
5. プロバイダ設定と API キーを Hermes の設定ファイルに保存します。
6. セットアップが完了するとメインのワークスペースを起動します。
ローカルモードでは、チャットリクエストは `http://127.0.0.1:8642` 経由で SSE ストリーミングされます。リモートモードでは、設定したリモート URL に対して同じストリーミングプロトコルで通信します。デスクトップアプリはストリームをリアルタイムで解析し、ツール進捗、Markdown コンテンツ、トークン使用量を順次レンダリングします。
## 画面構成
| 画面 | 説明 |
| ------------- | ------------------------------------------------------------------------------------------ |
| **Chat** | ストリーミング会話 UI。スラッシュコマンド、ツール進捗、トークントラッキングに対応 |
| **Sessions** | 過去の会話の閲覧、検索、再開 |
| **Agents** | Hermes プロファイルの作成、削除、切り替え |
| **Skills** | バンドル済み / インストール済みスキルの閲覧、インストール、管理 |
| **Models** | プロバイダごとに保存されたモデル設定の管理 |
| **Memory** | メモリエントリとユーザープロファイルの閲覧 / 編集、メモリプロバイダの設定 |
| **Soul** | アクティブなプロファイルのペルソナ (SOUL.md) を編集 |
| **Tools** | 個別のツールセットを有効化 / 無効化 |
| **Schedules** | 配信先付きの cron ジョブを作成・管理 |
| **Gateway** | メッセージングプラットフォーム統合の設定と制御 |
| **Office** | Claw3d ビジュアルインターフェースのセットアップと管理 |
| **Settings** | プロバイダ設定、認証情報プール、バックアップ / インポート、ログビューア、ネットワーク、テーマ |
## 対応プロバイダ
### LLM プロバイダ
| プロバイダ | 備考 |
| ------------------- | ----------------------------------------------- |
| **OpenRouter** | 単一 API で 200 以上のモデルを利用可能(推奨) |
| **Anthropic** | Claude に直接アクセス |
| **OpenAI** | GPT に直接アクセス |
| **Google (Gemini)** | Google AI Studio |
| **xAI (Grok)** | Grok モデル |
| **Nous Portal** | 無料枠あり |
| **Qwen** | QwenAI モデル |
| **MiniMax** | グローバル / 中国向けエンドポイント |
| **Hugging Face** | HF Inference 経由で 20 以上のオープンモデル |
| **Groq** | 高速推論 (Voice/STT) |
| **Local/Custom** | 任意の OpenAI 互換エンドポイント |
LM Studio、Ollama、vLLM、llama.cpp 用のローカルプリセットが付属しています。
### メッセージングプラットフォーム
Telegram、Discord、Slack、WhatsApp、Signal、Matrix/Element、Mattermost、Email (IMAP/SMTP)、SMS (Twilio & Vonage)、iMessage (BlueBubbles)、DingTalk、Feishu/Lark、WeCom、WeChat (iLink Bot)、Webhooks、Home Assistant。
### ツール統合
Exa Search、Parallel API、Tavily、Firecrawl、FAL.ai (画像生成)、Honcho、Browserbase、Weights & Biases、Tinker。
## 開発
### 前提条件
- Node.js と npm
- Hermes インストーラ用の Unix 系シェル環境
- 初回起動時に Hermes をダウンロードするためのネットワークアクセス
### 依存関係のインストール
```bash
npm install
```
### 開発モードでアプリを起動
```bash
npm run dev
```
### チェック実行
```bash
npm run lint
npm run typecheck
```
### テスト実行
```bash
npm run test
npm run test:watch
```
### デスクトップアプリのビルド
```bash
npm run build
```
プラットフォーム別パッケージング:
```bash
npm run build:mac
npm run build:win
npm run build:linux
npm run build:rpm # Fedora/RHEL .rpm のみ
```
## 初回セットアップ
アプリを初めて開くと、既存の Hermes インストールを検出するか、インストールを提案します。
UI でサポートされているセットアップパス:
- `OpenRouter`
- `Anthropic`
- `OpenAI`
- OpenAI 互換 base URL を使った `Local LLM`
以下のローカルプリセットが付属しています。
- LM Studio
- Ollama
- vLLM
- llama.cpp
Hermes のファイルは以下の場所で管理されます。
- `~/.hermes`
- `~/.hermes/.env`
- `~/.hermes/config.yaml`
- `~/.hermes/hermes-agent`
- `~/.hermes/profiles/` — 名前付きプロファイルディレクトリ
- `~/.hermes/state.db` — セッション履歴データベース
- `~/.hermes/cron/jobs.json` — スケジュールタスク
## 技術スタック
- **Electron** 39 — クロスプラットフォームのデスクトップシェル
- **React** 19 — UI フレームワーク
- **TypeScript** 5.9 — main / renderer プロセス間で型安全性を確保
- **Tailwind CSS** 4 — ユーティリティファーストのスタイリング
- **Vite** 7 + electron-vite — 高速な開発サーバーとビルドツール
- **better-sqlite3** — FTS5 全文検索付きのローカルセッションストレージ
- **i18next** — 国際化フレームワーク
- **Vitest** — テストランナー
## 補足
- 本デスクトップアプリはエージェントの動作やツール実行を上流の Hermes Agent プロジェクトに依存しています。
- 内蔵インストーラは公式の Hermes インストールスクリプトを `--skip-setup` 付きで実行し、その後 GUI でプロバイダ設定を完了します。
- ローカルモデルプロバイダには API キーは不要ですが、互換サーバーが事前に起動している必要があります。
- ネットワーク制限のある環境向けに、代替の npm レジストリ経路をサポートしています。
## コントリビューション
コントリビューションを歓迎します!始め方は[コントリビューションガイド](CONTRIBUTING.md)をご覧ください。どこから手を付ければよいか分からない場合は、[Open Issues](https://github.com/fathah/hermes-desktop/issues) を確認してください。バグを見つけた、または機能要望がある場合は [Issue を作成してください](https://github.com/fathah/hermes-desktop/issues/new)。
## 関連プロジェクト
コアエージェント、ドキュメント、CLI ワークフローについては、Hermes Agent 本体のリポジトリを参照してください。
- https://github.com/NousResearch/hermes-agent