AI News HubLIVE
站内改写

Show HN: I packaged a Python AI agent and Vue dashboard into one Electron app

Hermes Desktop is a cross-platform desktop app that bundles a Python runtime, hermes-agent (a self-improving AI agent), and hermes-web-ui (a Vue 3 + Koa chat dashboard) into a single Electron application, requiring no separate Python or Node installation. It integrates with DingTalk and is powered by DeepSeek.

Article intelligence

EngineersAdvanced

Key points

  • Bundles Python runtime and hermes-agent for a zero-dependency user experience
  • Uses Electron shell with hermes-web-ui frontend
  • Supports macOS, Windows, and Linux
  • Not code-signed; first run may require bypassing security warnings

Why it matters

This matters because bundles Python runtime and hermes-agent for a zero-dependency user experience.

Technical impact

May affect model selection, inference cost, product capability, and evaluation benchmarks.

Notifications You must be signed in to change notification settings

Fork 0

Star 1

BranchesTags

Open more actions menu

Folders and files

NameName

Last commit message

Last commit date

Latest commit

History

16 Commits

16 Commits

.github/workflows

.github/workflows

build

build

docs

docs

packages/server/data

packages/server/data

patches

patches

scripts

scripts

src

src

vendor

vendor

.gitignore

.gitignore

.gitmodules

.gitmodules

README.md

README.md

README.zh-CN.md

README.zh-CN.md

electron-builder.yml

electron-builder.yml

package-lock.json

package-lock.json

package.json

package.json

tsconfig.json

tsconfig.json

Repository files navigation

English · 中文

All-in-one cross-platform desktop app for Hermes Agent. Bundles a Python runtime + hermes-agent + hermes-web-ui into a single download — users don't need to install Python or Node.

Hermes Desktop ↔ DingTalk via DeepSeek (50s)

Acknowledgements

This project would not exist without two upstream projects, and the maintainers behind them. Hermes Desktop is a packaging shell — almost all of the user-visible surface comes from these two:

Hermes Agent by Nous Research — the self-improving AI agent that powers every conversation, tool call, skill, and gateway in this app. Hermes Desktop bundles it verbatim from PyPI.

hermes-web-ui by EKKO Learn AI — the Vue 3 + Koa multi-platform chat dashboard. Hermes Desktop vendors it as a git submodule and runs its server inside Electron.

If you find Hermes Desktop useful, please go give those repositories a star — they're doing the hard work.

Architecture

Electron Main (Node) ├─ Spawns vendored hermes-web-ui Koa server (ELECTRON_RUN_AS_NODE) on 127.0.0.1:8648 │ └─ HERMES_BIN → bundled python's hermes CLI (gateway) └─ BrowserWindow loads http://127.0.0.1:8648 with auth token injected via preload

Web UI: git submodule at vendor/hermes-web-ui

Python: python-build-standalone extracted under resources/python/-/

hermes-agent is pip installed into that bundled Python at build time

Install

Grab the latest installer for your platform from GitHub Releases:

Platform File

macOS Apple Silicon Hermes-Desktop--arm64.dmg

macOS Intel Hermes-Desktop--x64.dmg

Windows x64 Hermes-Desktop--x64.exe

Linux x64 Hermes-Desktop--x86_64.AppImage / .deb

Linux arm64 Hermes-Desktop--arm64.AppImage

The app is not code-signed yet in v0.x. First-run hints:

macOS: after dragging to Applications, run once:

xattr -cr "/Applications/Hermes Desktop.app"

Otherwise Gatekeeper says "已损坏" because the download has the com.apple.quarantine attribute and the binary is unsigned.

Windows: SmartScreen will show "Unrecognized app" — click More info → Run anyway.

Development

git clone --recurse-submodules https://github.com/sir1st/hermes-desktop cd hermes-desktop npm install

One-time per machine: build vendored web-ui

cd vendor/hermes-web-ui && npm ci && npm run build && cd ../..

One-time per (os, arch): fetch Python + install hermes-agent + apply patches

npm run prepare:python # uses uv if available, else pip

npm run dev # launches Electron with the dev build

uv is strongly recommended for prepare:python — pip on some networks/mirrors silently hangs while uv resolves the full hermes-agent dep tree in seconds.

Packaging

npm run dist:mac # → release/Hermes Desktop--arm64.dmg + x64.dmg npm run dist:win # → release/...-x64.exe (NSIS) npm run dist:linux # → release/...-x64.AppImage + .deb

Releases

CI in .github/workflows/release.yml builds the matrix on vX.Y.Z tags and uploads to GitHub Releases. Each matrix job builds with --publish never and uploads workflow artifacts; a final publish job downloads them and creates one Release via gh release create (avoids electron-builder's parallel-draft race). electron-updater auto-detects updates on next launch.

Layout

hermes-desktop/ ├── src/main/ # Electron main process ├── src/preload/ # Renderer preload (token + auto-login) ├── vendor/hermes-web-ui/ # submodule, locked version ├── resources/python/ # CI / dev artifact, gitignored ├── patches/ # README of curated upstream patches ├── scripts/ │ ├── fetch-python.mjs # download python-build-standalone │ ├── install-hermes.mjs # uv pip install hermes-agent + relocatable launcher │ ├── prune-python.mjs # strip __pycache__/tests/idle/tkinter │ ├── apply-hermes-patches.mjs # local fixes to bundled hermes-agent │ └── apply-webui-patches.mjs # local fixes to bundled hermes-web-ui └── electron-builder.yml

Versions pinned

python-build-standalone: 20260510

Python: 3.12.13

hermes-agent: 0.14.0

hermes-web-ui: tracked at the submodule's HEAD

Bump in scripts/fetch-python.mjs, scripts/install-hermes.mjs, and the submodule.

License

Hermes Desktop itself is MIT. Bundled artifacts retain their upstream licenses:

hermes-agent — MIT (Nous Research)

hermes-web-ui — BSL-1.1 (EKKO Learn AI)

python-build-standalone — Python Software Foundation License + others

See each project's repository for full terms.

About

All-in-one cross-platform desktop app for Hermes Agent — bundles Python + hermes-agent + hermes-web-ui

github.com/sir1st/hermes-desktop/releases/latest

Topics

electron

desktop-app

cross-platform

chatbot

self-hosted

dingtalk

ai-agent

llm

deepseek

hermes-agent

Resources

Readme

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

1 star

Watchers

0 watching

Forks

0 forks

Report repository

Releases 8

v0.1.1

Latest

May 28, 2026

+ 7 releases

Packages 0

Uh oh!

There was an error while loading. Please reload this page.

Contributors

Uh oh!

There was an error while loading. Please reload this page.

Languages

JavaScript 55.7%

TypeScript 44.3%