<p align="center">
<img src="https://raw.githubusercontent.com/hermes-hq/hermes-ide/HEAD/public/hermes.svg" width="72" height="72" alt="Hermes IDE logo">
</p>
<h1 align="center">Hermes IDE</h1>
<p align="center">
<strong class="text-xl">모든 코딩 에이전트를 위한 단일 콘솔.</strong><br>
Claude Code, Codex, Copilot, OpenCode 및 기타 에이전트들을 각각의 터미널과 작업 트리(worktree)에서 나란히 실행합니다.<br> 어떤 에이전트가 필요한지 확인하고, 변경된 내용을 검토한 후 통합할 수 있습니다.
</p>
<p align="center">
<a href="https://hermes-ide.com/download"><strong class="text-xl">다운로드</strong></a> ·
<a href="https://hermes-ide.com">웹사이트</a> ·
<a href="https://hermes-ide.com/changelog">변경 로그(Changelog)</a> ·
<a href="https://discord.gg/vMQXSTY6BM">Discord</a>
</p>
<div align="center">
Latest Release
Platforms
License
CI
Release
Discord
Sponsor
</div>
Hermes IDE in action
Hermes IDE는 macOS, Windows 및 Linux용 데스크톱 애플리케이션입니다. 모든 에이전트는 다른 곳에서와 마찬가지로 실제 터미널에 자체 인터페이스를 실행하므로, 공급업체의 새로운 명령어와 모드는 출시되는 즉시 Hermes에서도 작동합니다. 이 터미널들 주변으로, Hermes는 단일 에이전트가 제공하지 않는 것을 추가합니다: 각 작업을 위한 별도의 브랜치(branch) 및 작업 트리(worktree), 모든 에이전트에 대한 상태 표시줄, 사용자에게 블록된 에이전트를 위한 받은 편지함(inbox), 그리고 그들의 작업을 검토하고 병합할 수 있는 공간입니다. 이는 사용자의 자체 로그인으로 모든 공급업체에 대해 동일하게 작동합니다.
Hermes IDE는 Nous Research 또는 해당 Hermes Agent와 제휴하지 않습니다.
왜 Hermes인가
하루에 여러 코딩 에이전트를 실행한다면, 이것들이 바로 Hermes가 해결하기 위해 만들어진 문제입니다.
문제점 | Hermes가 하는 일
|---|---|
| 하나의 체크아웃에서 두 에이전트가 서로 덮어쓴다. | ⌘N은 각 작업을 자체 hermes/<name> 브랜치와 작업 트리(worktree)에서 시작하며, 해당 작업을 에이전트의 첫 프롬프트로 사용한다. 새로운 작업 트리는 몇 초 만에 의존성을 확보하고 자신만의 포트를 갖게 된다. |
| ... |
작업 흐름
flowchart LR
A["⌘N: 작업을 설명하세요"] --> B["에이전트가 자체 브랜치와 작업 트리에서 작업합니다"]
B --> C{"당신에게 막혔나요?"}
...
Hermes는 에이전트가 보고하는 내용과 git이 보여주는 내용을 관찰한다. 사용자를 위해 권한 프롬프트에 응답하거나 스스로 터미널에 타이핑하지 않는다.
빠른 시작
- Hermes 설치. hermes-ide.com/download에서 다운로드합니다: macOS (Apple Silicon 및 Intel), Windows, 또는 Linux (.deb 및 AppImage). 릴리스는 GitHub에서도 확인할 수 있습니다.
- 실행하고 에이전트와 리포지토리를 선택합니다. 3단계 설정은 사용 가능한 에이전트 CLI(Command Line Interface)를 보여주며, 예를 들어 Claude Code나 Codex와 같은 도구들이 각자 로그인했는지 여부를 표시합니다. 그런 다음 git 리포지토리를 선택합니다.
- 첫 번째 작업을 설명합니다. 에이전트는 자체 브랜치에서 작업으로 첫 프롬프트를 가지고 터미널에서 시작합니다. 그 후에는 ⌘N (Windows 및 Linux에서는 Ctrl+Shift+N)을 눌러 다음 작업을 시작하고, ⌘I는 사용자가 필요한 에이전트로 이동시키며, ⌘G는 검토를 위해 해당 에이전트의 변경 사항을 열어줍니다.
기능
각 에이전트를 독립된 터미널에서 실행
- 각 에이전트가 자체 터미널을 가짐 — Claude Code, Codex, Antigravity CLI, Gemini CLI, GitHub Copilot CLI, OpenCode, goose, Aider, Kiro CLI, Hermes Agent 등 사용자가 추가하는 모든 명령줄 에이전트와 일반 셸(plain shells)은 기본적으로 실제 터미널에서 열리며, 각 에이전트는 자체 인터페이스를 실행합니다. <!-- claim:every-agent-terminal -->
- 사용자 인증 정보 직접 가져오기 (Bring your own auth) — 에이전트는 자체 CLI 로그인(Claude의 경우: Pro, Max 또는 API 키)을 사용하며, Hermes는 토큰을 요청하지 않습니다. <!-- claim:agent-own-auth -->
- 다중 세션 관리 — 병렬 세션을 실행하고, 그 사이를 전환하며, 체계적으로 정리할 수 있습니다. <!-- claim:multi-session -->
- 분할 패널 (Split panes) — 오른쪽 또는 아래로 분할하여 여러 세션을 나란히 실행할 수 있으며, 하나의 패널을 닫아도 나머지 패널들이 공간을 채웁니다. <!-- claim:split-panes -->
- 빠른 터미널 렌더링 — 시스템이 지원하는 경우 GPU 가속(WebGL) 기능을 사용하며, 클릭 가능한 웹 링크와 창에 자동 맞춤 기능이 제공됩니다. <!-- claim:webgl-rendering -->
- 에이전트별 선택 사항 기억 — 새 세션 마법사(New Session wizard)가 마지막으로 사용한 에이전트와 실행 방식을 미리 선택해 줍니다. <!-- claim:remember-agent-choice -->
Claude를 위한 에이전트 뷰 (선택 사항)
- 세션별 옵트인 — 'Claude를 위한 에이전트 뷰'를 체크하면 Hermes가 Claude의 터미널 인터페이스 대신 대화를 렌더링합니다. 이 경우에도 터미널은 기본값으로 유지됩니다. <!-- claim:agent-view-opt-in -->
- 구조화된 대화 — 생각 블록(thinking blocks), 도구 호출 카드(tool-call cards), 그리고 diff 미리보기를 제공합니다. <!-- claim:agent-chat -->
- 실제 이미지 지원 — 이미지를 작성 영역(composer)에 바로 붙여넣을 수 있으며, Claude는 실제 픽셀을 인식합니다. <!-- claim:agent-images -->
- 지속적인 대화 — 에이전트 뷰 세션은 앱 재시작 후에도 이전 대화 내용이 화면에 표시되며, Claude가 이를 이어서 진행할 수 있습니다. <!-- claim:agent-persistent-conversations -->
검토 및 git
- 내장된 git 보기 기능(Built-in git view) — Review Desk는 프로젝트별로 스테이징된(staged), 언스테이징된(unstaged), 추적되지 않은(untracked) 파일을 나열합니다. <!-- claim:git-panel -->
- 스테이징/언스테이징/커밋/폐기(discard)/푸시/풀 — 모든 작업을 Review Desk에서 수행할 수 있습니다. <!-- claim:git-actions -->
- 인라인 diff 뷰어(Inline diff viewer) — 변경된 파일을 클릭하면 제거되고 추가된 라인이 표시되는 diff를 볼 수 있습니다. <!-- claim:git-diff -->
- 자체 자격 증명으로 푸시(Push with your own credentials) — git 자격 증명 도우미(예: Git Credential Manager) 또는
GITHUB_TOKEN을 사용하여 로그인하며, 아무것도 작동하지 않을 때의 로그인 방법도 알려줍니다. <!-- claim:git-auth -->
프롬프트 및 프로젝트 컨텍스트
- 프롬프트(Prompts) (⌘J) — 무료 Hodios 라이브러리에서 준비된 프롬프트를 찾거나 자신만의 프롬프트를 작성하여 빈칸을 채우고 세션 또는 새 작업에 넣을 수 있습니다. <!-- claim:prompt-composer -->
- 자동 스캐닝(Automatic scanning) — 각 프로젝트의 언어, 프레임워크, 아키텍처 및 컨벤션을 감지합니다. <!-- claim:project-scanning -->
- 컨텍스트 주입(Context injection) — 에이전트가 스캔 결과를 담은 컨텍스트 파일에 초점을 맞추며, 프로젝트별로 설정할 수 있는 토큰 예산 내에서 유지됩니다. <!-- claim:context-injection -->
- 다중 프로젝트 지원(Multi-project support) — 여러 프로젝트를 하나의 세션에 연결할 수 있으며, 이들의 컨텍스트가 에이전트에게 함께 전달됩니다. <!-- claim:multi-project -->
- 메모리 및 컨텍스트 고정(Memory & context pins) — 프로젝트를 위해 저장된 사실 정보와 고정 파일은 재시작 후에도 모든 이후 세션의 에이전트에게 도달합니다. <!-- claim:memory-pins -->
- 고스트 텍스트 제안(Ghost-text suggestions) — 타이핑하는 동안 명령어 기록에서 완성되는 내용입니다. 이를 수락할 수 있습니다 (자체적인 제안 기능이 없는 셸에서도). <!-- claim:ghost-text -->
제어 유지하기
- 시스템 알림(System notifications) — 에이전트가 사용자를 차단했거나 작업이 완료되었을 때 표시되는 알림이며, 현재 보고 있는 세션에 대해서는 절대 발생하지 않습니다. <!-- claim:notifications -->
- 세션당 지출량(Spend per session) — 에이전트가 보고하는 비용 또는 트랜스크립트를 기반으로 추정된 예상치로 명확히 표시되며 토큰 총량을 포함합니다. <!-- claim:session-spend -->
- 멈춤 감지(Stuck detection) — Agent-view 세션에서 Stop을 무시할 경우, Hermes가 응답하지 않는다고 알려주고 강제 중단(Force stop) 옵션을 제공하여 대화를 유지하게 합니다. <!-- claim:stuck-detection -->
- 명령 팔레트(Command Palette) — 입력하여 모든 액션을 찾고 실행할 수 있습니다. <!-- claim:command-palette -->
새 세션(New Session) 창은 SSH 및 tmux 세션(docs/ssh-remote-sessions.md)도 지원합니다. 리포지토리별 워크트리 설정은 docs/worktree-recipes.md에서 설명합니다.
소스에서 빌드하기
Tauri
React
Rust
TypeScript
사용하려면 Node.js 20 이상 버전, Rust (버전은 rust-toolchain.toml에 고정됨), 그리고 사용 플랫폼에 맞는 Tauri 시스템 종속성(system dependencies)이 필요합니다. BUILDING.md에는 macOS, Windows 및 Linux용 정확한 패키지 목록이 나열되어 있습니다.
git clone https://github.com/hermes-hq/hermes-ide.git
cd hermes-ide
npm ci
...
풀 리퀘스트 전 확인 사항:
npx tsc --noEmit
pm run test
cd src-tauri && cargo test
아키텍처 요약
(Architecture in one paragraph)
Hermes IDE는 Tauri 2 앱입니다. 프론트엔드는 React와 TypeScript로 구성되었으며, Rust 백엔드가 터미널, git, 백그라운드 세션 호스트 및 로컬 영속성(local persistence)을 담당합니다. Claude용 선택적 Agent 뷰는 작은 세션별 브릿지에서 Claude Agent SDK를 실행합니다. 자세한 내용은 [ARCHITECTURE.md]에 있으며, [ADR 003]에서는 Hermes가 왜 터미널 우선(terminal first)이며 공급업체 중립적(vendor-neutral)인지 설명합니다.
문서화 (Documentation)
기여하기 (Contributing)
기여를 환영합니다. 시작하기 전에 다음을 읽어보세요:
가장 중요한 규칙: 새로운 기능을 위해 코드를 작성하기 전에 이슈나 토론을 여세요. 버그 수정 및 문서는 사전 논의가 필요하지 않습니다.
라이선스 (License)
Hermes IDE는 Business Source License 1.1(BSL 1.1)에 따라 소스 코드가 공개됩니다.
- 할 수 있는 것: 비생산 목적(non-production purposes)으로 복사, 수정, 파생 저작물 생성, 재배포 및 자유롭게 사용할 수 있습니다. 생산 환경 사용은 Hermes IDE와 경쟁하지 않는 한 허용됩니다.
- 할 수 없는 것: 제3자에게 제공되는 경쟁 코드 에디터, 터미널 에뮬레이터 또는 IDE를 구축하는 데 사용하는 것은 불가능합니다.
- 각 릴리스 후 3년이 지나면, 해당 릴리스의 코드는 Apache License 2.0으로 전환됩니다.
모든 기여는 Contributor License Agreement에 서명해야 합니다.
보안 (Security)
취약점을 발견했습니까? 책임감 있게 다음 주소로 보고해 주십시오: [email protected]. 자세한 내용은 보안 정책 (Security Policy)을 참조하십시오.
Hermes IDE는 소규모 팀에 의해 구축 및 유지 관리됩니다. 이 프로젝트가 시간을 절약해 준다면, 지속적인 운영을 위해 후원(sponsoring)하는 것을 고려해 주십시오.
Sponsor Hermes IDE
GitHub Sponsors
| 등급 (Tier) | 월간 금액 (Monthly) | 혜택 (Perks) |
|---|
| ☕ Supporter | $5 | 후원자 배지 (Sponsor badge) |
| ... | | |
전체 스폰서 목록은 SPONSORS.md를 참조하십시오.