# hermes-desktop **Repository Path**: johnconner/HermesDesktop ## Basic Information - **Project Name**: hermes-desktop - **Description**: # HermesDesktop **HermesDesktop** 是一个基于 WPF 的桌面客户端,为 [Hermes AI Agent](https://hermesagent.org.cn/) 服务提供完整的图形化操作界面。 ## ✨ 核心功能 - **💬 智能对话**:多会话管理、Token 统计、打字机效果、文件附件、多模型切换 - **🛠️ 技能中心**:统一管 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-20 - **Last Updated**: 2026-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: Hermes, hermes-desktop, Windows ## README # HermesDesktop Hermes Desktop is a WPF-based desktop client application used to connect and operate the Hermes AI Agent service. The application provides comprehensive features including conversation management, skill/toolset control, scheduled task dispatch, kanban management, attachment management, memory editing, and more. ## Features ### 💬 Conversation Management - Supports multi-session management; create, switch, and search sessions - Real-time display of context usage (Token statistics) - Supports typewriter effect for word-by-word display of AI replies - File attachment support (image preview, file size display) - Supports multi-model selection and switching ### 🛠️ Skill Center - **Skills**: View and manage skills sourced locally/from Hub/from Agent - **Toolsets**: Enable/disable control for toolsets such as Web, Terminal, Memory, etc. - **MCP Servers**: Manage Model Context Protocol servers ### ⏰ Scheduled Tasks - Cron expression schedule task management - Task status monitoring (Running/Paused/Scheduled) - View execution history records - Supports sorting by name/time ### 📋 Kanban Management - Multi-board support (Default Board, Job Hunting Project Board, etc.) - Task status triage (To Triaged/To Do/Scheduled/In Progress/Blocked/In Review/Completed, etc.) - Drag-and-drop task management (Under Development) - Task statistics panel ### 📦 Attachment Center - Three attachment types: Images, Files, Links - Filter and display by type - Search by keyword - Associate attachments with conversation sessions ### 🧠 Memory Editing - Edit Memory, User, and Soul three-part memory content - Persist modified content - Automatically detect content changes ### ⚙️ Settings Center - API endpoint configuration - Model preference settings - Log viewing and management - Connection testing and update checks ## Tech Stack - **.NET 8** / **WPF** desktop framework - **CommunityToolkit.Mvvm** reactive programming - **SocketIO** real-time communication - **HttpClient** REST API calls - **XAML** + **C#** view and logic separation ## Project Structure ``` src/HermesDesktop.App/ ├── App.xaml.cs # Application entry point, DI Container initialization ├── MainWindow.xaml.cs # Main window, automatic session state saving ├── Services/ │ ├── HermesApiClient.cs # Core API client │ ├── ChatSocketService.cs # Real-time Socket communication │ ├── ModelSettingsService.cs # Model preference persistence │ └── WindowStateService.cs # Window position/size persistence ├── ViewModels/ │ ├── MainViewModel.cs # Main view navigation │ ├── ChatViewModel.cs # Conversation logic │ ├── SkillsViewModel.cs # Skills/Toolsets/MCP │ ├── CronViewModel.cs # Scheduled tasks │ ├── KanbanViewModel.cs # Kanban │ ├── ArtifactsViewModel.cs # Attachments │ └── MemoryEditorViewModel.cs # Memory editing ├── Views/ # XAML view layer ├── Converters/ # Value converters └── Themes/ # Style resources ``` ## Quick Start ### Environment Requirements - **Windows 10+** - **.NET 8 SDK** or higher version ### Compile and Run ```bash # Clone or extract the project cd HermesDesktop # Restore dependencies dotnet restore # Build the project dotnet build -c Release # Run the application dotnet run --project src/HermesDesktop.App ``` Alternatively, open the `HermesDesktop.sln` solution using Visual Studio 2022+ to compile and run directly. ## Configuration Instructions On first startup, you can configure the following on the **Settings** page: | Configuration Item | Description | |--------|------| | API Address | Hermes server endpoint, default is empty | | Username | Login username | | Password | Login password | | Default Model | Preferred AI model | ## User Guide ### Start Conversation 1. Complete authentication on the Settings page (click Login after filling in username and password) 2. Return to the **Chat** view 3. Select an existing session from the left session list or click **+** to create a new one 4. Input content to send and interact with the AI ### Manage Skills 1. Switch to the **Skills** view 2. Switch between the **Skills**, **Toolsets**, and **MCP Servers** tabs 3. Click the toggle switch on the right side of the skill card to enable/disable 4. Select an item to view details in the detail area ### Create Scheduled Task 1. Switch to the **Tasks** view 2. Click the **New Task** button 3. Fill in task name, Cron expression, skills to be used, etc. 4. After confirming creation, the task will execute according to schedule ### Edit Memory 1. Switch to the **Memory** view 2. Three editing areas: Memory, User, Soul 3. Click the **Edit** button to enter edit mode 4. Click **Save** to submit after modifications ## License This project follows the **MIT License**. For details, please see the LICENSE file in the project root directory. ## Contributing Welcome to submit Issues or Pull Requests to contribute code. Before submitting, please ensure: 1. Code conforms to the project's existing C# style and conventions 2. New features have added corresponding XAML views and ViewModels 3. Commit messages clearly describe the changes made --- **HermesDesktop** - Make AI Agent management more efficient 🚀