NousResearch/hermes-agent · error · Error

icon not found: ${icon}

Error message

icon not found: ${icon}

What it means

Error "icon not found: ${icon}" thrown in NousResearch/hermes-agent.

Source

Thrown at apps/desktop/scripts/set-exe-identity.mjs:56

import { resolve, join } from 'node:path'
import { existsSync } from 'node:fs'

import { rcedit } from 'rcedit'

import { isMain } from './utils.mjs'

// Stamp the Hermes icon + identity onto `exe`. Resolves on success, throws on
// failure. `desktopRoot` defaults to this script's package root so the icon and
// the rcedit dependency resolve regardless of cwd.
async function stampExeIdentity(exe, desktopRoot = resolve(import.meta.dirname, '..')) {
  if (!exe || !existsSync(exe)) {
    throw new Error(`target exe not found: ${exe}`)
  }

  // Icon lives at apps/desktop/assets/icon.ico
  const icon = join(desktopRoot, 'assets', 'icon.ico')
  if (!existsSync(icon)) {
    throw new Error(`icon not found: ${icon}`)
  }

  console.log(`[set-exe-identity] stamping ${exe}`)
  console.log(`[set-exe-identity] icon: ${icon}`)

  await rcedit(exe, {
    icon,
    'version-string': {
      ProductName: 'Hermes',
      FileDescription: 'Hermes',
      CompanyName: 'Nous Research',
      LegalCopyright: 'Copyright (c) 2026 Nous Research'
    }
  })

  console.log('[set-exe-identity] done — Hermes icon + identity stamped')
}

View on GitHub (pinned to c896c09c42)

Solutions

  1. Provide an icon file at the expected path or pass the correct icon path.
  2. Regenerate the app icons before running the identity script.

When it happens

Trigger: Thrown at apps/desktop/scripts/set-exe-identity.mjs:56 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/082988d4402953ba. Report an issue: GitHub.