TRENDSHIFT 딥다이브 · 2026.05.27

hermes-desktop 딥다이브
— Hermes Agent를 위한 Electron + React 19 컴패니언

Nous Research의 자기개선형 AI 에이전트 Hermes Agent를 명령줄 대신 네이티브 GUI에서 굴리기 위한 Electron 39 + React 19 데스크탑 앱. 설치 마법사 · 스트리밍 채팅 · 22개 슬래시 커맨드 · 16개 메시징 게이트웨이 · 메모리/스킬/페르소나/크론 관리를 한 화면에서 처리한다. (저장소: fathah/hermes-desktop · MIT · TypeScript 91.7% · ★7.7k · TrendShift 22위)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 하드웨어 / 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

한 문장으로 무엇을 하는 프로젝트인가
한 문장 정리

"Nous Research가 만든 자기개선형 AI 에이전트 'Hermes Agent'를 CLI 대신 네이티브 데스크탑 GUI에서 설치·설정·대화할 수 있게 해주는 Electron 컴패니언 앱."

설치 마법사, 스트리밍 채팅, 22개 슬래시 커맨드, 16개 메시징 게이트웨이, 메모리·스킬·페르소나·크론 잡 관리까지 한 화면에서 처리한다.

Hermes Agent는 본체가 Python 패키지로, curl ... | bash로 설치한 뒤 터미널에서 hermes 명령으로 굴린다. 많은 사람들에게 친숙한 흐름이지만, 비개발자에게는 진입 장벽이 높다. hermes-desktop은 그 사이를 메우는 "공식 GUI 포장지" 같은 존재다. 내부적으로는 로컬에 떠 있는 http://127.0.0.1:8642 Hermes API 서버에 SSE 스트리밍으로 붙어서 토큰·툴 진행 상황을 실시간으로 그려준다.

친숙한 비유

Hermes Agent가 엔진이라면, hermes-desktop은 그 엔진을 감싼 자동차의 운전석이다. 엔진(=백엔드) 자체는 터미널 명령으로도 돌릴 수 있지만, 핸들·계기판·내비게이션 없이는 일상적으로 운전하기 어렵다. 이 데스크탑 앱은 그 운전석을 통째로 제공한다.

2왜 주목받는가

트렌딩 이유와 기존 도구 대비 차별점

"Codex 데스크탑"이 아니라 "Agent 데스크탑"

2026년 트렌딩의 큰 흐름은 "내 LLM을 내 머신에서 굴리고 싶다"이다. Cursor·Claude Code·Codex CLI 같은 코딩 에이전트가 폭발한 뒤, 그 다음 자연스러운 질문이 따라왔다 — "코딩 이외의 일상 업무는?". Hermes Agent는 메신저·스케줄·메모리·페르소나를 모두 묶어 "개인용 자기개선형 비서"를 표방하고, hermes-desktop은 그 비서의 얼굴 역할을 한다.

CLI만으로 쓸 때
Hermes Agent를 터미널에서만 굴리기
hermes-desktop으로 쓸 때
GUI 컨트롤 패널로 같은 백엔드 굴리기
비슷한 영역의 다른 프로젝트와 비교

LM Studio·Ollama Desktop은 "모델 자체"를 굴리는 데 집중하고 에이전트 행동 루프는 외부다. Open WebUI는 웹 UI이고 메시징 플랫폼 연동이 약하다. hermes-desktop은 본체(Hermes Agent)에 메모리·스킬·페르소나·메신저 16종이 이미 결합돼 있고, GUI는 그 컨트롤 패널 역할을 한다. "AI 비서를 내 컴퓨터에 정착시키기" 카테고리에서는 가장 통합도가 높다.

TrendShift 22위에 오른 핵심 이유

3기술 스택 전체 지도

프론트(Electron+React) · 백엔드(Hermes Agent) · 데이터 경로

프론트엔드 (이 레포 = 데스크탑 앱)

레이어기술 / 버전역할
Electron 39크로스 플랫폼 데스크탑 컨테이너. Chromium + Node.js를 하나의 바이너리로 묶는다.
UI 프레임워크React 19.2최신 React. Server Components/Actions 등은 데스크탑이라 일부만 사용.
언어TypeScript 5.9main / preload / renderer 3개 프로세스 모두 TS. tsconfig.node.json, tsconfig.web.json로 분리.
스타일Tailwind CSS 4 (+@tailwindcss/vite)유틸리티 클래스 기반. CSS 6.3%는 대부분 Tailwind 생성물.
빌드 / DevVite 7 + electron-vite 5HMR 가능한 Electron 개발 환경. 3개 프로세스를 한 번에 빌드.
로컬 DBbetter-sqlite3 12SQLite + FTS5 풀텍스트 검색. 세션 히스토리 저장.
마크다운react-markdown + remark-gfm채팅 메시지의 마크다운/표/체크박스 렌더링.
코드 하이라이트react-syntax-highlighter코드 블록 채색.
아이콘lucide-react가벼운 SVG 아이콘 셋.
국제화i18next + react-i18next현재 영어 로케일만 포함, 커뮤니티 번역 대기.
테스트Vitest 4 + @testing-library/react + jsdomSSE 파서, IPC 핸들러, preload API, 설치 유틸리티 단위 테스트.
패키징electron-builder 26 + electron-updaterWin/macOS/Linux/RPM 빌드 + 자동 업데이트.
린트/포맷ESLint 9 + Prettier + Husky커밋 훅에서 자동 검사.
참고할 점
왜 React 19 + Tailwind 4 + Vite 7인가

2026년 5월 현재 가장 최신 메이저 버전들을 깔끔하게 조합한 사례다. 특히 Tailwind 4 + @tailwindcss/vite 플러그인 조합은 PostCSS 빌드 없이 Vite가 바로 처리하는 신식이라, Tailwind 마이그레이션 공부 자료로도 유용하다.

백엔드 (Hermes Agent — 별도 레포, 의존 대상)

hermes-desktop은 자체 백엔드가 없다. 대신 NousResearch/hermes-agent를 로컬에 설치하고 그 HTTP 서버에 붙는다.

레이어기술역할
언어Python 82% + TypeScript 14%핵심 에이전트 루프는 Python, 웹/TUI 일부가 TS.
HTTP로컬 서버 127.0.0.1:8642SSE(Server-Sent Events)로 토큰 스트리밍.
의존성 매니저uv + Python 3.11+Astral의 차세대 pip. 빠르고 락파일 기반.
패키징pyproject.toml + Dockerfile + flake.nixpip 설치, Docker, Nix 셸 모두 지원.
메모리Honcho, Hindsight, Mem0, RetainDB, Supermemory, ByteRover 등 플러그인"사용자 모델" 누적용 외부 메모리 백엔드.
검색Exa, Tavily, Parallel API, Firecrawl웹 검색·크롤링 툴 통합.
스케줄러자체 cron 엔진 (~/.hermes/cron/jobs.json)분/시간/일/주/커스텀 cron 표현식.

인프라 / 데이터 경로

4아키텍처 심화 분석

3-프로세스 Electron 모델 + 5가지 설계 패턴

3-프로세스 Electron 모델

모든 Electron 앱이 그렇듯 hermes-desktop은 세 개의 분리된 프로세스로 구성된다. 보안과 안정성을 위해 강제된 구조로, 한 번 이해하면 다른 Electron 앱(VS Code, Discord, Slack 등)도 똑같이 읽을 수 있다.

┌──────────────────────────────────────────────────────────────────────────┐ │ hermes-desktop (Electron 39) │ │ │ │ ┌─────────────────┐ IPC ┌──────────────────┐ contextBridge │ │ │ Main Process │ ◀──────▶ │ Preload Process │ ◀───────────────┐ │ │ │ (Node.js) │ │ (Sandboxed) │ │ │ │ │ │ └──────────────────┘ │ │ │ │ • IPC handlers │ │ │ │ │ • SQLite (FTS5) │ ┌──────────────────────────────────┐ │ │ │ │ • Installer │ │ Renderer Process │ │ │ │ │ • Auto-updater │ │ (Chromium + React 19) │ │ │ │ │ • Fetch SSE │ │ │ │ │ │ │ • Spawn hermes │ │ ┌──────────────────────────────┐│ │ │ │ └────────┬────────┘ │ │ Chat / Sessions / Skills / ││ │ │ │ │ │ │ Memory / Tools / Schedules /││ │ │ │ │ │ │ Gateway / Soul / Settings ││ │ │ │ │ │ └──────────────────────────────┘│ │ │ │ │ │ window.api ────────────┼─┘ │ │ │ └──────────────────────────────────┘ │ └───────────┼──────────────────────────────────────────────────────────────┘ │ HTTP + SSE ▼ ┌──────────────────────────────────────┐ │ Hermes Agent (Python) │ │ http://127.0.0.1:8642 │ │ │ │ • LLM provider routing │ │ • Tool execution (14 toolsets) │ │ • Memory / Skills / SOUL.md │ │ • Cron scheduler │ │ • Messaging gateway (16 platforms) │ └──────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────┐ │ LLM Providers (택1) │ │ OpenRouter / Anthropic / OpenAI / │ │ Gemini / Grok / Ollama / vLLM ... │ └──────────────────────────────────────┘

핵심 설계 패턴 5가지

PATTERN 1

"GUI는 얇은 컨트롤러" 패턴

비즈니스 로직(LLM 호출, 메모리 관리, 스킬 실행, 메신저 라우팅)은 모두 Hermes Agent 백엔드에 있고, 데스크탑은 입출력과 설정 관리만 담당한다. 이 분리 덕분에 같은 백엔드를 텔레그램·디스코드 봇으로도, 데스크탑 GUI로도 동시에 쓸 수 있다.

PATTERN 2

SSE 스트리밍 + IPC 펌프

Main 프로세스가 127.0.0.1:8642에 SSE로 붙어 token / tool_call / tool_result 이벤트를 받고, IPC로 Renderer에 그대로 흘려보낸다. Renderer는 React state에 토큰을 누적해 한 글자씩 그리는 "타자기 효과"를 만든다.

PATTERN 3

"로컬 vs 원격" 듀얼 모드

첫 실행 시 사용자가 local(이 컴퓨터에 백엔드 설치)과 remote(별도 서버의 Hermes에 URL+API key로 접속)를 고른다. 같은 SSE 프로토콜이라 UI 코드는 분기 없이 동작한다 — VPS에 Hermes를 띄우고 노트북에서 붙는 패턴이 가능하다.

PATTERN 4

SQLite FTS5 풀텍스트 세션 검색

모든 대화는 ~/.hermes/state.db에 저장된다. 데스크탑은 better-sqlite3으로 동일한 파일을 읽어 FTS5 인덱스에 직접 쿼리한다. "한 달 전에 OAuth 디버깅한 대화 어디 있더라?"가 1초 안에 해결된다.

PATTERN 5

플러그형 메시징 게이트웨이

Telegram, Discord, Slack, WhatsApp, Signal, Matrix, Email IMAP/SMTP, SMS(Twilio/Vonage), iMessage(BlueBubbles), DingTalk, Feishu, WeCom, WeChat, Webhooks, Home Assistant — 모두 같은 "Gateway" 추상화를 통해 Hermes 백엔드에 메시지를 흘려넣는다. 데스크탑 GUI는 각 플랫폼의 토큰만 받아서 백엔드에 저장한다.

보안 주의
Electron 보안 격리

Renderer는 샌드박스 모드로 돌아 Node.js API를 직접 호출할 수 없다. 파일 시스템·자식 프로세스 spawn 등은 모두 preload 스크립트가 contextBridge.exposeInMainWorld('api', ...)로 노출한 제한된 API를 통해 Main에 IPC 요청을 보낸다. preload의 표면적이 곧 보안 경계라서 테스트(tests/preload)에 공을 들인다.

5디렉토리 구조 해부

모노레포 레이아웃과 각 폴더의 역할
hermes-desktop/ ├── .agents/skills/ # 에이전트가 사용할 Skill 정의 (SKILL.md 묶음) ├── .claude/skills/ # Claude Code용 동일 Skill 미러 ├── .github/workflows/ # CI: lint, typecheck, test, build ├── .husky/ # Git 훅: pre-commit 시 lint ├── build/ # 빌드 산출물 (electron-builder 입력) ├── changelogs/ # 버전별 변경 노트 ├── docs/ # 개발자/사용자 문서 ├── previews/ # README에 들어가는 스크린샷 ├── resources/ # 앱 아이콘, 메타데이터 ├── scripts/ # 빌드·릴리스 보조 스크립트 ├── src/ # ★ 실제 앱 소스 (TypeScript 91.7%의 본거지) │ ├── main/ # ─ Main 프로세스 (Node.js, 64개 파일 플랫 구조) │ │ ├── secrets/ # 시크릿 저장 (유일한 서브디렉토리) │ │ ├── installer.ts # Hermes 설치 스크립트 호출, 진행률 추적 │ │ ├── sse-parser.ts # SSE 파서 (Hermes 응답 파이프) │ │ ├── db.ts # better-sqlite3, FTS5 인덱스 │ │ └── index.ts # 앱 부트스트랩 (ipc 핸들러 포함) │ ├── preload/ # ─ Preload 스크립트 (보안 경계) │ │ └── index.ts # contextBridge로 안전한 API 노출 │ └── renderer/ # ─ Renderer 프로세스 (React 19) │ ├── components/ # Chat, Sessions, Skills, Memory, ... (I18nContext/I18nProvider 포함) │ ├── screens/ # 12개 화면 (위 README 참고) │ ├── hooks/ # useStreamingChat, useSessions, ... │ └── App.tsx ├── tests/ # Vitest 단위/통합 테스트 ├── .browserslistrc # 타겟 브라우저 (Electron Chromium 버전) ├── .env.example # 환경 변수 템플릿 ├── electron-builder.yml # 패키징 설정 (Win/Mac/Linux/RPM) ├── electron.vite.config.ts # Vite 멀티 프로세스 설정 ├── eslint.config.mjs # 플랫 ESLint 설정 (v9 새 포맷) ├── package.json # 의존성 + npm scripts ├── skills-lock.json # .agents/skills의 lock 파일 ├── tsconfig.json # TS 메인 설정 ├── tsconfig.node.json # main + preload용 ├── tsconfig.web.json # renderer용 └── vitest.config.ts # 테스트 설정
주목할 만한 파일들

electron.vite.config.ts — Electron 멀티 프로세스 빌드의 정답에 가까운 설정. 사본 떠두면 다른 Electron 프로젝트 시작이 쉽다.

skills-lock.json — Anthropic agentskills.io 표준 호환 lock 파일. Skill 버전 관리의 실전 예시.

tsconfig.node.json + tsconfig.web.json 분리 — Node 환경과 DOM 환경의 타입을 깨끗하게 격리하는 모범 사례.

.husky/pre-commit — lint-staged 없이 husky 단독으로 커밋 시점 검사. Husky 9+ 방식.

6학습 포인트 (기술별)

이 저장소에서 배울 수 있는 것
ELECTRON

Electron 39 멀티 프로세스 아키텍처

Main / Preload / Renderer 3-프로세스 모델, contextBridge로 안전한 API 노출, IPC(ipcMain.handleipcRenderer.invoke) 패턴. electron-vite로 HMR 가능한 dev 환경 구축.

실습npm run dev로 띄운 뒤 Renderer 코드 수정 → 즉시 반영되는지 확인하고, Main 프로세스 코드를 수정한 뒤에는 앱 재시작이 필요함을 체감해 본다.

REACT 19

React 19 + TypeScript 5.9

React 19에서 추가된 use() 훅, Actions, 자동 batching 강화 등을 데스크탑 환경에서 실전 적용한 사례.

실습src/renderer/hooks/의 커스텀 훅을 따라 만들어 보고, SSE 스트림을 받는 useStreamingChat 같은 훅을 직접 구현해 본다.

SSE

Server-Sent Events 스트리밍

WebSocket보다 가벼운 단방향 스트리밍. fetch + ReadableStream으로 한 글자씩 받는 방법, 토큰 청크를 React state에 누적해 타자기 효과 만들기.

실습 — ChatGPT/Claude API를 SSE 모드로 호출해 토큰 단위로 콘솔에 찍는 50줄짜리 스크립트부터 만들어 본다.

SQLITE

better-sqlite3 + FTS5 풀텍스트 검색

비동기 sqlite3와 달리 동기 API라 Electron Main에서 다루기 쉽다. CREATE VIRTUAL TABLE ... USING fts5로 한국어 포함 풀텍스트 검색 가능.

실습 — 메모장 앱을 만들어 모든 노트 본문을 FTS5 인덱스에 넣고, MATCH 쿼리로 1초 안에 검색되는지 확인.

TAILWIND 4

Tailwind CSS 4 + Vite 플러그인

PostCSS 없이 @tailwindcss/vite로 통합. @theme 디렉티브로 CSS 변수 기반 테마링. v3 대비 빌드 속도 향상이 체감된다.

실습 — 기존 Tailwind v3 프로젝트를 v4로 마이그레이션해 보고 빌드 시간 차이를 측정.

VITEST

Vitest로 IPC / 파서 단위 테스트

Jest 대체. ESM 친화적이고 빠르다. tests/에서 SSE 파서, IPC 핸들러, preload 표면, 설치 유틸리티를 어떻게 격리해 테스트하는지 확인할 수 있다.

실습 — 임의의 SSE 응답 청크를 입력하면 토큰 배열을 뱉는 파서 함수를 TDD로 구현.

ELECTRON-BUILDER

크로스 플랫폼 패키징 & 자동 업데이트

electron-builder.yml에서 Win/Mac/Linux/RPM 4개 타깃 동시 설정, electron-updater로 차등 업데이트.

실습 — 자기 Hello World Electron 앱에 build:win, build:mac, build:linux를 모두 적용해 본다.

AGENT UX

AI 에이전트 컨트롤 패널 UX

"기능이 많은 AI를 어떻게 GUI로 풀어 놓을 것인가"의 실전 답안. 채팅·세션·툴·스킬·메모리·페르소나·스케줄·게이트웨이가 각각 별도 화면으로 분리된 IA(정보구조)를 참고할 수 있다.

실습 — 자기가 쓰는 AI 비서의 기능 목록을 똑같이 12개 사이드바로 풀어 본다.

7하드웨어 / 시스템 요구사항

돌리는 데 필요한 것 + Windows 설치 주의
구분요구사항비고
OSWindows 10/11, macOS 11+, Linux (Ubuntu 22.04+, Fedora 등)WSL2도 지원 — 다만 설치 스크립트 sudo 이슈 있음(#109)
RAM최소 4GB, 권장 8GB+로컬 LLM(Ollama 등)을 같이 굴리면 16GB+ 필요
디스크2GB(앱) + 5~50GB(Hermes Agent + 모델 캐시)로컬 모델 사용 시 디스크 부담 큼
네트워크설치 시 필수(uv, Python, ripgrep, ffmpeg 다운로드)로컬 모델만 쓰면 그 후엔 오프라인 가능
의존성Node.js 20+, npm, Git, Python 3.11+설치 마법사가 거의 다 해결
GPU선택사항API 모드면 불필요. Ollama/vLLM 로컬 모델이면 VRAM 8GB+ 권장
Windows / WSL / Fedora 함정
설치 시 자주 막히는 지점

8직접 해볼 수 있는 실습 과제

난이도별로 손에 익히는 6단계
EASY · 입문

1. hermes-desktop을 띄우고 OpenRouter 무료 모델로 채팅하기

릴리스 페이지에서 OS에 맞는 바이너리를 받아 설치 → 첫 화면에서 "Local mode" → 마법사 따라 OpenRouter API 키 입력 → 무료 티어 모델(google/gemma-2-9b-it:free 등) 선택 → "토큰이 한 글자씩 흘러나오는" SSE 스트리밍을 직접 확인.

EASY · 입문

2. 로컬 Ollama를 백엔드로 붙이기

ollama serve로 띄운 뒤 hermes-desktop의 Providers 화면에서 "Local/Custom" 선택, base URL을 http://localhost:11434/v1로 설정. 동일한 채팅 UX가 완전 오프라인에서 돌아가는 것을 확인.

MEDIUM · 중급

3. 코드 클론 후 dev 모드로 띄워서 Renderer 수정해 보기

git clonenpm installnpm run dev. Chat 화면 컴포넌트(src/renderer/components/Chat/)에 자기만의 사이드 패널을 하나 추가해 본다 — 토큰 사용량 그래프를 라이브로 그리는 미니 위젯이 좋은 출발점.

MEDIUM · 중급

4. 텔레그램 봇으로 일 시키기

BotFather로 텔레그램 봇 생성 → Gateway 화면에서 토큰 등록 → "내일 오전 9시에 어제 GitHub 활동 요약해서 보내줘"라고 채팅. Schedules 화면에서 cron 잡이 생성됐는지, 실제로 다음날 텔레그램에 메시지가 오는지 확인.

HARD · 고급

5. 자기만의 Skill 만들어 .agents/skills/에 넣어 본 뒤 호출

Anthropic agentskills.io 표준의 SKILL.md를 따라 "내 한국어 블로그 스타일로 글 다듬기" 같은 Skill을 작성. YAML frontmatter에 트리거 키워드 명시 → skills-lock.json 갱신 → Skills 화면에서 활성화 → 채팅에서 "이 글 좀 다듬어줘"로 호출되는지 검증.

HARD · 고급

6. $5 VPS에 Hermes Agent 띄우고 노트북에서 원격 모드로 붙기

Hetzner/Vultr 등에 우분투 VPS 생성 → 공식 설치 스크립트 → hermes serve로 백엔드 노출(reverse proxy + HTTPS 권장) → 노트북 hermes-desktop에서 "Remote mode" 선택, URL+API key 입력. 노트북을 닫아도 cron 잡과 메신저 봇이 VPS에서 계속 돌아가는 풀스택 구성 완성.

9관련 기술 심화 학습 로드맵

8주 코스로 차근차근
WEEK 1

Electron 기초와 3-프로세스 모델

공식 튜토리얼("Hello World" → "퀵 스타트")을 끝까지 따라하고, Main / Preload / Renderer 분리의 의미를 손에 새긴다. contextBridge로 안전한 API를 노출하는 패턴을 직접 짜본다.

WEEK 2

electron-vite + React 19 + TypeScript 환경 구성

hermes-desktop의 electron.vite.config.tstsconfig.*.json 분리 방식을 그대로 베껴 자기 프로젝트의 보일러플레이트로 만든다. HMR이 Renderer에만 적용되고 Main은 재시작이 필요함을 체감.

WEEK 3

SSE 스트리밍과 LLM API

OpenAI/Anthropic/OpenRouter의 SSE 응답 포맷을 비교하고, 통합 파서를 만든다. ReadableStream + TextDecoder로 한 글자씩 토큰을 React state에 흘려보내는 훅을 처음부터 작성.

WEEK 4

better-sqlite3 + FTS5로 로컬 검색

한국어 토크나이저(unicode61 remove_diacritics 2) 옵션을 학습. 100만 행 더미 데이터를 넣고 MATCH 쿼리 응답 시간을 측정. EXPLAIN QUERY PLAN으로 인덱스 활용을 확인.

WEEK 5

Tailwind CSS 4 마이그레이션 + 디자인 토큰

v3 → v4 변경점(설정 파일 폐지, @theme 도입, JIT 기본화)을 정리. hermes-desktop이 어떻게 CSS 변수와 Tailwind 유틸리티를 함께 쓰는지 분석.

WEEK 6

Vitest로 IPC / 파서 단위 테스트

Electron Main 코드의 IPC 핸들러를 jsdom 없이 테스트하는 패턴, preload 표면을 mock해서 Renderer 컴포넌트를 테스트하는 패턴. tests/ 디렉토리를 읽으며 따라간다.

WEEK 7

electron-builder + electron-updater

코드 사인(macOS Notarization, Windows Code Signing) 비용·절차를 조사, 차등 업데이트(blockmap)의 작동 원리 파악. 자기 앱에 GitHub Releases 기반 자동 업데이트 채널을 붙여 본다.

WEEK 8

AI 에이전트 본체(Hermes Agent) 코드 읽기

Python 88%인 본체로 넘어가서 agent/, toolsets.py, cron/을 읽으며 "데스크탑이 어떤 HTTP 엔드포인트들을 호출하는지" 매핑한다. 결국 두 레포가 어떻게 맞물리는지 그림이 그려진다.

10핵심 키워드 사전

자주 등장하는 용어 한눈에
용어 풀이
Electron
Chromium(웹 엔진) + Node.js를 묶어 데스크탑 앱을 만드는 프레임워크. VS Code, Discord, Slack 등이 모두 이걸로 만들어졌다.
용어 풀이
Main / Renderer / Preload 프로세스
Electron 앱의 세 프로세스. Main은 Node 전체 권한, Renderer는 샌드박스된 웹 페이지, Preload는 둘 사이의 게이트키퍼.
용어 풀이
IPC (Inter-Process Communication)
Main ↔ Renderer가 서로 메시지를 주고받는 방법. ipcMain.handle / ipcRenderer.invoke 짝으로 비동기 호출.
용어 풀이
contextBridge
Preload에서 Renderer로 "안전한 API"만 골라 노출하는 메커니즘. window.api.foo() 형태로 접근.
용어 풀이
SSE (Server-Sent Events)
서버 → 클라이언트 단방향 HTTP 스트리밍. text/event-stream MIME으로 토큰을 한 줄씩 흘려보낸다. LLM 응답 스트리밍의 사실상 표준.
용어 풀이
FTS5
SQLite의 풀텍스트 검색 가상 테이블. CREATE VIRTUAL TABLE ... USING fts5로 만들고 MATCH 키워드로 검색.
용어 풀이
better-sqlite3
Node.js용 동기 SQLite 바인딩. 비동기 sqlite3보다 빠르고 Electron Main에서 다루기 편하다.
용어 풀이
Hermes Agent
Nous Research가 만든 자기개선형 AI 에이전트 백엔드. Python 패키지로 hermes CLI를 제공.
용어 풀이
Agent Skills
Anthropic이 agentskills.io 표준으로 정의한 "에이전트 행동 패키지". YAML frontmatter + Markdown 본문(SKILL.md)으로 구성.
용어 풀이
SOUL.md
Hermes의 페르소나 정의 파일. 에이전트의 성격·말투·금기를 마크다운으로 기술.
용어 풀이
Gateway
Hermes가 외부 메신저(Telegram, Discord 등)와 통신하는 통합 인터페이스. 같은 에이전트가 여러 플랫폼에 동시 응답 가능.
용어 풀이
cron 표현식
* * * * * 5필드(분·시·일·월·요일)로 스케줄을 표현. hermes는 이 위에 "자연어 → cron" 변환 레이어를 얹어 있다.
용어 풀이
Toolset
에이전트가 호출할 수 있는 도구 묶음. hermes는 14개 toolset(web, browser, terminal, file, code, vision, image gen, TTS 등)을 제공.
용어 풀이
MoA (Mixture of Agents)
여러 에이전트의 답변을 종합해 더 좋은 응답을 만드는 패턴. hermes 툴셋 중 하나.
용어 풀이
Honcho / Mem0 / Supermemory
"사용자 모델"을 누적 저장하는 외부 메모리 백엔드. 세션을 넘어 유저의 취향·맥락을 기억하게 해준다.
용어 풀이
uv
Astral이 만든 차세대 Python 패키지 매니저. pip + virtualenv + pip-tools를 한 번에 대체하며 매우 빠르다.
용어 풀이
electron-vite
Electron + Vite를 묶어주는 메타 빌드 툴. Main/Preload/Renderer 3개 프로세스를 HMR 지원하며 동시에 빌드.
용어 풀이
electron-builder
Electron 앱을 OS별 인스톨러(.exe, .dmg, .deb, .rpm 등)로 패키징하는 도구.

11참고 링크

더 깊이 파고들 곳