Skip to content
CAI
Software that uses CAICheck a score

dodo-reach/hermes-desktop

65.4

Adequate · 1 October 2026

28.4k

lines of production code

Swift

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Hermes Desktop is a native macOS client that provides a comprehensive interface for managing and interacting with a remote Hermes Agent host. It enables users to browse and edit files, manage SSH and local terminal sessions, and control scheduled cron jobs, Kanban boards, and reusable workflows. The application also offers detailed usage analytics and skill discovery, supporting both local execution and remote SSH connections with robust security and localization features.

Features

Add Cron Jobs management view

Users can now browse, create, edit, and delete scheduled cron jobs directly within the Hermes Desktop application. This new view provides a searchable list of jobs discovered on the active host (local or SSH), with filtering options to show active or paused jobs, and a detail pane for inspecting schedules and payloads.

Sources/HermesDesktop/Views/CronJobs · high confidence

Add SwiftTerm Apple platform terminal rendering vendor

The project now includes the SwiftTerm library as a vendored dependency for Apple platforms (macOS, iOS, visionOS). This adds a native terminal view implementation that renders text, block elements, and box-drawing characters using CoreGraphics, and supports high-performance GPU rendering via a new Metal backend with configurable buffering modes. It also introduces a progress bar view for terminal progress reports and handles caret, selection, and link reporting behaviors specific to Apple UI frameworks.

Vendor · high confidence

Add remote skills browser

Users can now browse, search, and inspect Hermes skills discovered on the active host (local or SSH) via a new Skills view. This view lists discovered skills with filtering support, allows selection to view detailed metadata (such as slug, category, version, and source), and displays the full SKILL.md content. Users can also create new skills or edit existing ones (where permitted) through an integrated editor.

Sources/HermesDesktop/Views/Skills · high confidence

Add usage dashboard and session analytics

A new Usage view has been added to the desktop application, providing a dashboard that displays input and output token metrics for the active Hermes profile. The interface includes summary cards for token counts, a breakdown of usage across multiple profiles if available, highlights of top sessions and models, and a chart visualizing recent session activity. The view handles loading states and errors gracefully, ensuring users can monitor their usage statistics directly within the app.

Sources/HermesDesktop/Views/Usage · high confidence

Automated macOS release packaging with version stamping and verification

The scripts directory now provides a complete, automated pipeline for building, packaging, and verifying macOS releases. The build script (build-macos-app.sh) compiles universal binaries (arm64 and x86\_64), stamps the app bundle with version and build numbers derived from git tags or environment variables, includes localization resources (English, Russian, Simplified Chinese), and codesigns the bundle. The packaging script (package-github-release.sh) generates a zip archive alongside a SHA-256 checksum and a detailed JSON manifest containing artifact metadata (version, architecture, bundle identifier). Finally, a new verification script (verify-release.sh) allows users to validate that a release zip matches its manifest and checksum, ensuring integrity before distribution.

scripts · high confidence

Introduce Workflows management view for reusable prompt presets

Adds the WorkflowsView component, enabling users to create, search, edit, and delete reusable prompt presets (workflows) that launch in a fresh Terminal tab. The view provides a split layout with a searchable list of saved workflows on the left and a detail/editor pane on the right, supporting features like skill assignment, deletion confirmation, and direct execution.

Sources/HermesDesktop/Views/Workflows · high confidence

Introduce native Kanban board management in Hermes Desktop

Hermes Desktop now includes a dedicated Kanban view that allows users to inspect and operate real Hermes Kanban projects directly within the desktop application. This new feature provides a native interface for managing multiple boards, including the ability to create new boards, archive existing ones, and switch between different project boards. Users can filter tasks by status, assignee, and tenant, and perform full-text search across tasks. The view also supports collapsible workspace panes and cached filter results for improved performance, integrating seamlessly with the existing workbench layout.

Sources/HermesDesktop/Views/Kanban · high confidence

Introduces unified design system and layout metrics for the desktop app

This change adds a new shared SwiftUI component file that establishes the core visual design system and layout constraints for the application. It defines a comprehensive set of color tokens (for backgrounds, panels, rows, warnings, and selections) that map to native macOS system colors to ensure proper Light and Dark mode support. Additionally, it introduces structured enums for page widths and split-view metrics, standardizing minimum, default, and maximum dimensions for the workspace sidebar, workbench browser, and workbench detail panes, along with a container view for consistent page padding and scrolling.

Sources/HermesDesktop/Views/Shared · high confidence

Launch of Hermes Desktop landing page

A new landing page for Hermes Desktop has been added to the site, featuring a native macOS aesthetic with IBM Plex Sans and Geist Mono typography. The page introduces the product as a native Mac app for the Hermes Agent host, highlighting capabilities such as browsing sessions, editing files, and running a real terminal over SSH without a gateway. The design includes a sticky top bar, a hero section with a call-to-action, and a distinct visual style using accent colors and bold borders.

site · high confidence

New data models for appearance, cron jobs, Kanban, skills, and usage analytics

Hermes Desktop introduces a comprehensive set of new model types to support recently added features. AppAppearancePreference now handles system, dark, and light modes, terminal font family and size settings, and window opacity and material (solid, native, translucent) preferences. CronJobModels define the structure for scheduled jobs, including prompts, skills, scheduling, and execution states. KanbanModels provide the data layer for board management, tasks, and projects. SkillModels and SkillLaunchability handle local and external skill discovery, cataloging, and launch logic. UsageModels expose session and token analytics, including input/output counts and cost estimates. Additional models support session TUI invocations, workflow presets, workspace file bookmarks, and terminal theming.

Sources/HermesDesktop/Models · high confidence

New remote management capabilities for cron jobs, Kanban boards, skills, and usage analytics

Hermes Desktop now includes dedicated services to manage remote cron jobs, Kanban boards, skills, and usage analytics. The CronBrowserService allows users to list, create, update, pause, resume, and delete scheduled jobs via SSH. The KanbanBrowserService enables loading boards, creating and editing tasks, adding comments, and archiving boards. The SkillBrowserService supports discovering, viewing, creating, and updating skills, including local precedence for launchable skills. The UsageBrowserService provides session analytics and token usage summaries by reading remote SQLite session stores. Additionally, the FileEditorService now enforces file size limits for remote editing and returns content hashes for integrity, while the SessionBrowserService adds search functionality and session deletion.

Sources/HermesDesktop/Services · high confidence

New utility modules for localization, diagnostics, and remote script helpers

This change introduces several new utility components in the HermesDesktop Utilities module. It adds a localization helper (Localization.swift) that resolves string resources from bundled \.bundle\ files, supporting the addition of Simplified Chinese and Russian translations. It introduces WorkflowLaunchDiagnostics.swift, which records detailed telemetry for workflow launches (including prompt metrics, delivery modes, and timing) to a local log file. It also adds ShellCommandQuoting.swift for safe terminal command escaping and updates RemotePythonScript.swift to include shared Python helper functions for SQLite read-only access, path expansion, and binary discovery. Additionally, DateFormatters.swift is updated to cache formatters per thread for performance.

Sources/HermesDesktop/Utilities · high confidence

Support for direct local Hermes connections and custom home paths

The Connections view now allows users to create connections that run directly on the local Mac, rather than only via SSH. When creating or editing a connection, users can select 'This Mac' as the connection type, which uses the local macOS account and affects real Hermes files, profiles, and sessions on the device. Additionally, an advanced 'Custom Hermes home' option is available for both local and SSH connections, allowing users to specify a non-standard directory path (e.g., outside the default \\~/.hermes\ layout) to be used as \HERMES\_HOME\ for sessions, files, and other features.

Sources/HermesDesktop/Views/Connections · high confidence

Terminal sessions now support startup commands, initial input, and workflow diagnostics

Terminal sessions can now be launched with a specific startup command line and initial input text, enabling automated workflows and direct local Hermes support. The terminal service also integrates with workflow launch diagnostics to record process start, initial input delivery (including bracketed paste readiness), and exit events, providing better observability for automated terminal interactions.

Sources/HermesDesktop/Services/Terminal · high confidence

Removals

Removal of the Remote Overview surface from the desktop client

The Remote Overview view, which previously displayed live discovery results from the active SSH target (including connection details, resolved paths like MEMORY.md and USER.md, session store status, and quick-access buttons for files, sessions, and terminal), has been removed from the application. Users will no longer see this specific summary screen for remote environment discovery within the desktop interface.

Sources/HermesDesktop/Views/Overview · high confidence

Behavioural changes

Expanded appearance settings and secure storage paths

The application now supports customizable terminal themes, font sizes, and families, as well as window opacity, material, and background image settings (including fit and blur). These preferences are persisted via a new \persistPreferencesIfNeeded\ mechanism. Additionally, the storage layer has been hardened: SSH control socket paths are shortened and scoped to workspace fingerprints for isolation, and all application support directories are created with restricted permissions (0o700) to improve security.

Sources/HermesDesktop/Services/Storage · high confidence

Expanded localization coverage for Hermes Desktop

Added comprehensive English, Russian, and Simplified Chinese translations for the Hermes Desktop interface, covering SSH connection profiles, session management, cron jobs, skills, and usage statistics.

Sources/HermesDesktop/Resources · high confidence

Introduces native macOS menu commands and refines window appearance settings

Hermes Desktop now provides a dedicated 'Hermes' menu in the macOS menu bar with keyboard shortcuts for creating new hosts, chats, and terminal tabs, as well as refreshing sections, searching, and saving files. A 'Navigate' menu allows quick switching between app sections. The application window now supports configurable background images, opacity, and material effects via the connection store, replacing the previous hardcoded minimum size and custom window accessor with a new configurator component.

Sources/HermesDesktop · high confidence

Redesigned Files view with collapsible workspace panes and bookmark management

The Files view has been restructured to use a collapsible horizontal split layout, separating the file library from the editor pane. This update introduces a new 'Library' panel that organizes files into 'Canonical' groups and user-defined 'Bookmarks', which can now be grouped into collapsible folders. Users can manage bookmarks directly from the library, including removing them via a confirmation alert, and the view now supports opening new files through a dedicated browser sheet.

Sources/HermesDesktop/Views/Files · high confidence

Redesigned session list and detail views with search and split layout

The Sessions view now features a collapsible split layout with a dedicated session list panel that includes an expandable search field for filtering conversations, replacing the previous simple list. The session detail view has been significantly expanded to support two distinct modes—Transcript and Chat—switchable via a segmented control, and includes a new toolbar with session summary actions (pin, delete, resume in terminal). The UI also introduces improved scroll behavior preservation across session switches and mode changes, along with updated styling for headers, panels, and empty states.

Sources/HermesDesktop/Views/Sessions · high confidence

Redesigned workspace layout with collapsible sidebar and background image support

The main application window now uses a collapsible split-view layout for the workspace sidebar, allowing users to toggle its visibility via a toolbar button or collapse it entirely. The interface also supports custom background images, which can be displayed with adjustable blur and overlay effects. Additionally, the view now handles update availability sheets, status messages, and alert dialogs more robustly, ensuring a smoother user experience during app interactions.

Sources/HermesDesktop/Views · high confidence

Support for local execution and more reliable SSH sessions

Hermes Desktop now supports direct local execution for connections marked as local, running commands via /bin/sh instead of SSH. The SSH transport has been hardened to automatically retry remote commands without multiplexing if the initial attempt fails, improving reliability. Additionally, terminal sessions now use a structured process launch configuration that properly sets environment variables (such as HOME, USER, and PATH) for local shells and standard terminal environment variables (TERM, COLORTERM) for remote SSH shells.

Sources/HermesDesktop/Services/SSH · high confidence

Terminal view supports custom themes, fonts, and background images

The terminal interface now respects user-configured appearance settings, including custom themes, font families, and font sizes, which are applied to the terminal session and tab headers. Additionally, when a background image is active, the terminal container and tab strip switch to a thin material style, and tab chips now display the resolved profile name and host label to better distinguish sessions across different workspaces.

Sources/HermesDesktop/Views/Terminal · high confidence

Updated macOS bundle version and added local network usage description

The macOS application bundle version has been reset to 0.0.0 (build 0) in Info.plist, and a new NSLocalNetworkUsageDescription key has been added to explain that the app connects directly to SSH hosts on the local network, which is required for modern macOS privacy permissions.

packaging · high confidence

Test coverage

Added comprehensive test coverage for Hermes Desktop core features

Added new unit and integration tests for Hermes Desktop, covering navigation shortcut stability, connection profile persistence and validation (including legacy decoding, local vs SSH kinds, and shell-expansion escaping), connection store resilience against corrupted JSON, update-check persistence behavior, cron job scheduling and search logic, Kanban board and task model decoding, file editor safety checks (UTF-8 validation, size limits, hash conflicts, dangling symlinks), Hermes TUI/terminal session invocation commands, localization key synchronization across locales, and a smoke test for local Hermes integration.

Tests · high confidence

Dependencies

Vendor SwiftTerm and update Swift toolchain version

The project now vendors the SwiftTerm library directly under Vendor/SwiftTerm instead of fetching it as a remote package dependency, and updates the Swift tools version from 6.2 to 6.1. Additionally, a new test target (HermesDesktopTests) is added to the package manifest, and resources are configured for the main executable target.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 67 → 65 (-1.5)
  • Rubric changed (rubric-2026.09.11 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 91 → 89 (-2.0)
  • Architecture 98 → 99 (+1.1)
  • Maturity 62 → 62 (+0.0)
  • Readiness 58 → 55 (-2.7)
  • Security 81 → 81 (+0.0)

Resolved (6)

  • Hotspot: Vendor/SwiftTerm/Sources/SwiftTerm/Buffer.swift (Vendor/SwiftTerm/Sources/SwiftTerm/Buffer.swift)
  • Hotspot: Vendor/SwiftTerm/Sources/SwiftTerm/Terminal.swift (Vendor/SwiftTerm/Sources/SwiftTerm/Terminal.swift)
  • Hotspot: Vendor/SwiftTerm/Sources/SwiftTerm/iOS/iOSTerminalView.swift (Vendor/SwiftTerm/Sources/SwiftTerm/iOS/iOSTerminalView.swift)
  • Members sharing a duplicated core (14 members, 50+ identical tokens) (Sources/HermesDesktop/Services/KanbanBrowserService.swift)
  • Members sharing a duplicated core (4 members, 50+ identical tokens) (Sources/HermesDesktop/App/AppState.swift)
  • Members sharing a duplicated core (5 members, 50+ identical tokens) (Sources/HermesDesktop/Models/ConnectionProfile.swift)

New (62)

  • AppState.canRefreshCurrentSection (cyclomatic 18) (Sources/HermesDesktop/App/AppState.swift)
  • Coverage not measured — Swift suite
  • CronJobsView.jobsContent (cognitive 16) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Dependency hygiene PARTLY measured — SwiftPM pinning read, dependency currency NOT established
  • Documentation: no installation or build instructions (docs/releases/README.md)
  • Documentation: no usage examples (docs/releases/README.md)
  • Duplicate intent with different names. changeScrollback and changeHistorySize appear to perform the same operation (adjusting the scrollback buffer size) on the Terminal, and HeadlessTerminal also exposes changeScrollback. This creates confusion about which method to use.
  • Duplicated block (10 lines × 2) (Sources/HermesDesktop/Views/Connections/ConnectionEditorSheet.swift)
  • Duplicated block (10 lines × 2) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Duplicated block (11 lines × 2) (Sources/HermesDesktop/Views/Skills/SkillDetailView.swift)
  • Duplicated block (11 lines × 3) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Duplicated block (12 lines × 2) (Sources/HermesDesktop/Views/Connections/ConnectionEditorSheet.swift)
  • Duplicated block (12 lines × 2) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Duplicated block (12 lines × 2) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Duplicated block (12 lines × 2) (Sources/HermesDesktop/Views/Skills/SkillDetailView.swift)
  • Duplicated block (12 lines × 4) (Sources/HermesDesktop/Views/Usage/UsageView.swift)
  • Duplicated block (13 lines × 2) (Sources/HermesDesktop/Views/Connections/ConnectionsView.swift)
  • Duplicated block (13 lines × 2) (Sources/HermesDesktop/Views/Connections/ConnectionsView.swift)
  • Duplicated block (13 lines × 2) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • Duplicated block (13 lines × 5) (Sources/HermesDesktop/Views/CronJobs/CronJobsView.swift)
  • …and 42 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

dodo-reach/hermes-desktop was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 3b772afa366d331f63a8b3bd8d66b5159fcab615 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.