본문으로 건너뛰기

Codex App-Server 실행 시간

Hermes는 선택적으로 손 openai/*openai-codex/*는 자체 도구 루프를 실행하는 대신 Codex CLI app-server로 전환합니다. 활성화되면 터미널 명령, 파일 편집, 샌드 박스링 및 MCP 도구는 Codex의 실행 시간 내에 모든 실행을 호출합니다. Hermes는 그 주위에 쉘이됩니다 (제 DB, 슬래시 명령, 게이트웨이, 메모리 및 기술 검토).

**opt-in 만 **입니다. 기본 헤르메스 동작은 플래그를 플립하지 않는 한 변경되지 않습니다. Hermes는 이 런타임에 자동 루트가 없습니다.

설명

  • 공지사항 AI 에이전트는 같은 auth 흐름 Codex CLI 사용을 사용하여 ** ChatGPT 구독** (API 키가 필요하지 않음)에 대해 전환합니다.
  • useCodex's own toolet and sandboxshell for terminal/read/write/search, apply_patch 구조 편집, update_plan 기획, 모든 런닝 내부 seatbelt/landlock sandboxing.
  • **Native Codex 플러그인 ** - 선형, GitHub, Gmail, 캘린더, Canva 등 — codex plugin 를 통해 자동 마이그레이션 및 활성을 통해 설치됩니다.
  • Hermes' richer tools come along — web_search, web_extract, 브라우저 자동화, 시각, 이미지 생성, 기술, 그리고 MCP 콜백을 통해 TTS 작업. Codex는 도구에 대한 Hermes로 돌아갑니다.
  • Memory and Skill nudges keep working — Codex의 이벤트는 헤르메스 메시지 모양으로 제작되어 자기 개선 루프는 정상적인 보기 성적을 볼 수 있습니다.

모델은 실제로 어떤 도구가

이것은 대부분의 사용자가 앞을 알고 싶어. 이 런타임이 켜지면, 턴을 실행하는 모델은 도구의 세 가지 독립적 인 소스가 있습니다

1. 명세 Codex의 내장 툴킷 (위로)

이 배는 codex app-server 자체 - 헤르메스 참여 없음, MCP 없음, 플러그인 없음. 모든 5는 실행 시작 순간을 사용할 수 있습니다:

  • shell - sandbox 내부의 임의 쉘 명령을 실행합니다. 이것은 모델이 파일 (cat, head, tail)를 읽는 방법이며, (echo > foo, heredocs)를 작성하고, (find, rg, ...)를 관리하는 것입니다.
  • apply_patch - Codex의 패치 형식의 구조형 멀티 파일 디프를 적용합니다. 모델은 non-trivial 코드 편집을 위해 이것을 사용 (기능을 추가, 파일 전반에 걸쳐 복원); shell heredocs는 여전히 하나의 오프 쓰기에 사용할 수 있습니다.
  • update_plan — codex의 내부 todo / 계획 추적기. Hermes' todo 도구와 동일하지만, 코드의 실행 시간 내에 완전히 관리됩니다.
  • view_image - 대화에 로컬 이미지 파일을로드하므로 모델이 볼 수 있습니다.
  • web_search — codex는 설정할 때 자체 내장 웹 검색을 가지고 있습니다. 헤르메스는 아래 콜백을 통해 web_search (Firecrawl-backed)를 노출합니다. 이 모델은 선호하는 것을 선택합니다.

그래서 당신은 터미널을 통해 수행 - 읽기 / 쓰기 / 연구 / 핀 / 실행 - 코덱은 기본적으로. sandbox 프로필 (:workspace 기본으로 실행할 때)는 writable을 제어합니다.

2. Native Codex 플러그인 (codex plugin 설치에서 자동 마이그레이션)

런타임을 활성화할 때, Hermes queries codex의 plugin/list RPC가 설치되어 있는 모든 플러그인의 [plugins."<name>@openai-선별된"] 입력을 작성합니다. 플러그인 자체는 코덱에 의해 관리되고 코드의 자신의 UI를 통해 한 번 허가.

예제 (OpenClaw 스레드는 "YouTube-video-worthy"으로 강조):

  • Linear - 찾기/업데이트 문제
  • GitHub - 검색 코드, PR 보기, 댓글
  • Gmail — 읽기/삭제 메일
  • **Google 캘린더 ** — 생성/완료된 이벤트
  • **Outlook 캘린더 / 이메일 ** - Microsoft 커넥터를 통해 동일한 모양
  • **Canva ** - 디자인 세대 -... 당신이 통해 설치 한 다른 사람 codex plugin marketplace add openai-curated + codex plugin install...

무엇 마이그레이션 하지 않습니다:

  • 아직 설치하지 않은 플러그인 — Codex에 설치.
  • ChatGPT 앱 마켓 플레이스 항목 (app/list) - 이미 계정 우즈의 virtue에 의해 코덱 내에서 활성화됩니다.

3. 명세 Hermes 도구 콜백 (MCP 서버, ~/.codex/config.toml에 등록)

Hermes는 MCP 서버로 자체를 등록하므로 코덱은 도구 코덱을 위해 다시 호출 할 수 없습니다. 콜백을 통해 사용 가능:

  • web_search/web_extract - Firecrawl-backed; 구조화 된 콘텐츠를 긁기보다 클리너 경향이있다.
  • **browser_navigate / browser_click / browser_type / ... / browser_snapshot / browser_scroll / browser_back / browser_get_images / .../.
  • vision_analyze - 이미지를 검사하기 위해 별도의 비전 모델을 호출합니다 (코드의 view_image에서 다른).
  • image_generate - Hermes의 image_gen 플러그인 체인을 통해 이미지 생성.
  • skill_view / skills_list - Hermes의 기술 라이브러리에서 읽으십시오.
  • text_to_speech - 헤르메스를 통한 TTS.

이 모델 중 하나를 원할 때, 코덱은 stdio MCP를 통해 hermes_tools_mcp_server 하위 처리가 model_tools.handle_function_call() ( Hermes의 기본 실행 시간으로 동일한 코드 경로)를 통해 전송되며, 그 결과는 다른 MCP 응답과 같은 코덱으로 반환됩니다.

이 실행 시간에 사용할 수 없습니다

이 4 Hermes 도구는 AIAgent 컨텍스트 (mid-loop state)를 실행해야하며, stateless MCP 콜백은 구동할 수 없습니다. 기본 실행 시간으로 다시 전환 (/codex-runtime auto) 당신이 그들 중 하나를 필요로 할 때:

  • delegate_task - 스파드 시약
  • memory - 헤르메스의 지속 메모리 저장소
  • session_search — 횡단 검색
  • todo - Hermes' todo store (codex's update_plan는 실행 시간 상응)

워크 플로우 기능 (/goal, 칸반, 크론)

/goal (랄프 루프)

이 실행 시간에 작업. state_meta에 있는 목표 persist는 session id에 의해 키워진, run_conversation()를 통해 정상적인 사용자 메시지로 돌아가고, codex는 다음 턴을 기본적으로 실행합니다. 목표 판단은 config.yaml의 auxiliary.goal_judge를 통해 설정된 보조 클라이언트를 통해 실행됩니다. 판단의 "블록, 사용자 입력을 필요로" verdict는 코드가 승인에 넣을 때 깨끗한 탈출이다.

**각 윤곽 프롬프트는 스크래치에서 코드 재평가 명령 승인 정책을 의미하는 신선한 코덱 턴이다. 쓰기를 많이 가진 긴 실행 목표를하고 있다면, 단일 인감 작업에 대해 더 많은 승인 프롬프트를 기대합니다. default_permissions = ":workspace"를 설정하세요. (어메가 실행 시간을 활성화 할 때 자동으로 동작합니다) 그래서 간단한 작업 공간은 프롬프트가 필요하지 않습니다.

Kanban (다 시약 worktree 파견)

이 실행 시간에 작업, 하나의 하위 의존성. kanban 파견자는 각각 hermes chat -q 하위 프로세스로 작동한다. model.openai_runtime: codex_app_server이 전 세계적으로 설정되고, 노동자는 코덱 런타임에 올린다.

codex-runtime worker 안에 어떤 일:

  • Codex의 전체 도구 모음 (shell, apply_patch, update_plan, view_image, web_search) - 작업자는 실제 작업이 기본적으로 수행됩니다
  • migrated codex 플러그인 — 선형, GitHub 등.
  • The Hermes tool callback for browser_*, 비전, 이미지_gen, 기술, TTS

MCP 콜백이 그(것)들을 노출하기 때문에 어떤 일도:

  • kanban_complete / kanban_block / kanban_comment / kanban_heartbeat - 작업자 핸드오프 도구. 이 읽기 HERMES_KANBAN_TASK env (컨테이너에 의해 설정), 게이트 액세스는 올바르게, 그리고 ~/.hermes/kanban.db에 쓰기. 콜백에서 이러한없이, 이 런타임에 노동자는 작업을 수행 할 수 있지만, 디스커버의 타임 아웃까지 거꾸로보고 할 수 없습니다.
  • kanban_show / kanban_list - 자체 컨텍스트를 확인하기 위해 노동자 전용 보드 쿼리.
  • kanban_create / kanban_unblock / kanban_link - 오케스트라터 전용 운영. 새로운 작업을 파견해야하는 코덱 런타임에서 실행되는 오케스트라 에이전트에 사용할 수 있습니다.

kanban 도구는 HERMES_KANBAN_TASK env var에 의해 문질러 세트 — 그 var is propagated to the codex subprocess (codex 상속 env) 과 거기에서 spawned hermes-tools MCP 서버 하위 처리. 그래서 도구는 올바른 작업 ID와 게이트를 올바르게 볼 수 있습니다.

Cron 작업

특별히 시험되지 않음. Cron job run via cronjobAIAgent.run_conversation, 같은 코드 경로 CLI. cron 작업의 구성이 openai_runtime: codex_app_server이 코덱에서 실행되는 경우. 동일한 도구 가용성 규칙 적용 - 코덱 내장 + 플러그인 + MCP 콜백 작업, 에이전트 루프 도구 (delegate_task, 메모리, session_search, todo)하지 않습니다. cron 작업이 그에 의존한다면, cron을 기본 실행 시간을 사용하는 프로파일에 배열합니다.

회사연혁

Hermes 기본 실행 시간Codex 앱 서버 (opt-in)
delegate_task 시약설명not available - 에이전트 루프 컨텍스트 필요
memory, session_search, todo설명not available - 에이전트 루프 컨텍스트 필요
web_search, web_extract설명예 (MCP 콜백을 통해)
브라우저 자동화 (Camofox/Browserbase)설명예 (MCP 콜백을 통해)
vision_analyze, image_generate설명예 (MCP 콜백을 통해)
skill_view, skills_list설명예 (MCP 콜백을 통해)
text_to_speech설명예 (MCP 콜백을 통해)
Codex shell (단/읽기/쓰기/피드/런)예 (Codex 내장)
Codex apply_patch (멀티 파일 편집)예 (Codex 내장)
Codex update_plan (실행 시간)예 (Codex 내장)
Codex view_image (회전 이미지)예 (Codex 내장)
Codex sandbox (seatbelt/landlock의 단면도)예 (Codex 내장)
ChatGPT 구독예 (openai-codex 제공자를 통해)
Native Codex 플러그인 (Linear, GitHub 등)예 (자동 마이그레이션)
사용자 MCP 서버설명예 (codex에 자동 마이그레이션)
Memory + 기술 검토 (background)설명예 (항목 투상)
멀티턴 대화설명설명
/goal (리프 루프)설명설명
Kanban 노동자 파견설명예 (callback을 통해)
Kanban Orchestrator 도구설명예 (callback을 통해)
모든 Gateway 플랫폼설명설명
Non-OpenAI 서비스설명n/a — OpenAI/Codex-스코프

자주 묻는 질문

  1. ** 코덱 CLI 설치:**
    npm i -g @openai/codex
    codex --version # 0.130.0 or newer
  2. ** Codex OAuth 로그인.** 코덱 하위 처리는 ~/.codex/auth.json를 읽습니다. 두 가지 방법:
    codex login                  # writes tokens to ~/.codex/auth.json

헤르메스 자체 hermes auth login codex~/.hermes/auth.json로 작성합니다. **Run codex login 별도 ** 그렇지 않은 경우.

  1. ** (선택 사항) 당신이 원하는 코덱 플러그인 설치.** 런타임을 활성화할 때, Codex CLI를 통해 이미 설치된 플러그인을 큐레이트하는 Hermes Auto-migrates:
    codex plugin marketplace add openai-curated
    # then via codex's TUI, install Linear / GitHub / Gmail / etc.

헤르메스는 [plugins."<name>@openai-curated"] 항목을 ~/.codex/config.toml로 자동 작성하고 작성합니다.

지원하다

Hermes 세션에서:

/codex-runtime codex_app_server

그 명령:

  • codex CLI가 설치됩니다.
  • Persists model.openai_runtime: codex_app_server config.yaml에.
  • ~/.hermes/config.yaml에서 ~/.codex/config.toml로 사용자 MCP 서버를 마이그레이션합니다.
  • **Discovers 및 마이그레이션은 기본 Codex 플러그인을 설치 ** (Linear, GitHub, Gmail, 캘린더, Canva 등) Codex의 plugin/list RPC를 쿼리함으로써.
  • Registers Hermes의 자체 도구는 MCP 서버이므로 코덱 하위 처리는 도구 코덱을 위해 다시 호출할 수 없습니다.
  • Writes default_permissions = ":workspace" 그래서 샌드박스는 각 작업에 대한 프롬프트없이 작업 영역 내에서 작성할 수 있습니다.
  • 무슨 일이 있었는지 알려줍니다. next 세션에서 효과를 가져다 - 현재 캐시 된 에이전트는 이전 실행 시간을 유지하므로 신속한 캐시가 유효하다.

동의어: /codex-runtime on, /codex-runtime off, /codex-runtime auto.

어떤 변화 없이 현재 상태를 검사하기 위하여:

/codex-runtime
``~/.hermes/config.yaml`에서 수동으로 설정할 수 있습니다
```yaml
model:
openai_runtime: codex_app_server # default is "auto" (= Hermes runtime)

각자 개량 반복 (메모리 + 기술 진창)

Hermes의 배경 자기 개선 화재 카운터 임계 값:

  • 모든 10 사용자 프롬프트 → 포크 된 리뷰 에이전트는 대화에서보고 메모리에 저장해야하는지 결정합니다.
  • 한 번의 턴 → 같은 생각하지만 기술 (skill_manage 쓰기)의 각 10 도구의 반복.

Both는 코덱 런타임을 계속합니다. 코드 경로 프로젝트 각 완료 commandExecution / fileChange / mcpToolCall / dynamicToolCall 아이템 합성 assistant tool_call + tool 결과 메시지이므로 검토가 실행되면 기본 헤르메스 실행 시간에 동일한 모양을 볼 수 있습니다.

배선은 어떻게 동등하나요

기본 실행 시간Codex 실행 시간
_turns_since_memory 증가user prompt에서 run_conversation pre-loop에 대해같은 코드 경로, 초기 반환 전에
_iters_since_skill 증가채팅-completions 루프에서 도구 반복으로 turn.tool_iterations 코덱 후 반환
메모리 트리거 (_turns_since_memory >= _memory_nudge_interval)전 반복에서 computed, 응답 후에 불pre-loop에서 컴파일, codex helper에 통과
스킬 트리거 (_iters_since_skill >= _skill_nudge_interval)반복 후 컴파일codex 턴 후 컴파일
_spawn_background_review(messages_snapshot=..., review_memory=..., review_skills=...)방아쇠 불 때 호출불을 트리거 할 때 동일하게 호출

한 세부 사항: 리뷰 포크 자체는 Hermes의 에이전트 루프 도구 (memory, skill_manage)를 호출해야합니다. Hermes의 자체 파견이 필요합니다. 그래서 부모 에이전트가 codex_app_server에있을 때, 검토 포크는 ** codex_responses**에 다운 그레이드 - 같은 OAuth 자격 증명, 같은 openai-codex 공급자, 그러나 OpenAI의 응답 API에 직접 이야기 그래서 Hermes는 루프와 에이전트 루프 도구 작업을 소유. 이것은 사용자에게 보이지 않습니다.

Net effect: codex 런타임과 메모리 + 스킬 런닝을 활성화하여, 그렇지 않다.

승인 방법

명령을 실행하거나 패치를 적용하기 전에 Codex 요청 승인. 이들은 Hermes의 표준 "Dangerous Command"로 번역됩니다

╭───────────────────────────────────────╮
│ Dangerous Command │
│ │
│ /bin/bash -lc 'echo hello > foo.txt' │
│ │
│ ❯ 1. Allow once │
│ 2. Allow for this session │
│ 3. Deny │
│ │
│ Codex requests exec in /your/cwd │
╰───────────────────────────────────────╯
  • **Allow 한 번 ** →이 단일 명령을 승인.
  • 이 세션에 대한 Allow → Codex는 유사한 명령에 대한 재제작되지 않습니다.
  • Deny → 명령은 거부됩니다. Codex는 읽기 전용 모드에서 계속됩니다.

apply_patch (파일 편집) 승인을 위해, Hermes는 코드가 해당 1 add, 1 update: /tmp/new.py, /tmp/old.py를 통해 데이터를 제공 할 때 변경된 (fileChange 항목의 요약을 보여줍니다.

회사 소개

Codex에는 세 가지 내장 권한 프로파일이 있습니다

  • :read-only - 쓰기 없음; 각 쉘 명령은 승인이 필요합니다
  • :workspace — 현재 작업 영역 내에서 쓰기 (Hermes' default when you enable runtime)
  • :danger-no-sandbox - 모든 샌드박스가 없습니다 (당신이 이해하지 않는 한 사용하지 마십시오)

Hermes 관리 블록 밖에 ~/.codex/config.toml에서 기본값을 무시할 수 있습니다

default_permissions = ":read-only"

(여러분은 # managed by hermes-agent 마커 밖에 살고있는 재전송에 대한 배속을 보존합니다.)

보조 작업 및 ChatGPT 구독 토큰 비용

이 런타임이 openai-codex 공급자와 함께있을 때, ** 보조 작업 (제목 생성, 컨텍스트 압축, 비전 자동 감지, 세션 검색 요약, 배경 자체 개선 검토 포크) 또한 기본적으로 ChatGPT 구독을 통해 흐름 **, Hermes의 보조 클라이언트는 설정할 때 주요 공급자 / 모델을 사용하므로.

이것은 codex_app_server에 특이하지 않습니다. 기존 codex_responses 경로에 대한 사실입니다. 그러나 구독 청구에 명시적으로 선택하기 때문에 더 가시적입니다.

~/.hermes/config.yaml에 명시된 오버라이드를 더 저렴하고 다른 모델로 특정 보조 작업을 경로를 지정하려면:

auxiliary:
title_generation:
provider: openrouter
model: google/gemini-3-flash-preview
컨텍스트_compression:
provider: openrouter
model: google/gemini-3-flash-preview
vision_detect:
provider: openrouter
model: google/gemini-3-flash-preview
session_search:
provider: openrouter
model: google/gemini-3-flash-preview
goal_judge:
provider: openrouter
model: google/gemini-3-flash-preview

자체 평가 검토 포크는 _current_main_runtime() 및 Hermes가 codex_app_server에서 codex_app_server로 자동적으로 codex_responses로 옮겼습니다 (그래서 포크는 실제로 memoryskill_manage를 호출할 수 있습니다). 즉, fork는 여전히 구독 auth를 사용합니다. 즉, 다른 곳에서는 aux 작업을 진행했습니다.

편집 ~/.codex/config.toml 안전하게

Hermes는 두 개의 마커 의견을 관리합니다

# managed by hermes-agent — `hermes codex-runtime migrate` regenerates this section
default_permissions = ":workspace"
[mcp_servers.filesystem]...
[plugins."github@openai-선별된"]...
# end hermes-agent managed section

차단을 해제 **. Re-running migration (/codex-runtime codex_app_server을 통해 또는 런타임을 할 때마다)는 처리 블록을 배치하지만 위의 사용자 콘텐츠를 보존하고 verbatim 아래. 이렇게 하면:

  • 자신의 MCP 서버를 추가 Hermes에 대해 알 수 없습니다
  • 오버라이드 default_permissions:read-only 당신이 프롬프트를 선호하는 경우
  • codex-only 옵션 구성 (모델, 공급자, otel 등)
  • [permissions.<name>] 테이블에 사용자 정의 권한을 추가하십시오

어떤 추가 ** 내부 ** 관리 블록은 다음 마이그레이션에 복제됩니다. 관리된 블록을 편집하는 데 필요한 tweak이 필요한 경우, 문제점을 파일하고 knob을 추가합니다.

Multi-profile / 멀티텐트 설정

기본적으로 Hermes는 Hermes 프로파일이 활성화되는 것에 관계없이 ~/.codex/의 codex 하위 프로세스를 점합니다. 이것은 hermes -p workhermes -p personal는 동일한 코덱 오, 플러그인 및 구성을 공유합니다. 대부분의 사용자를 위해 이것은 올바른 행동입니다. 그것은 codex CLI를 직접 실행하는 것과 일치합니다.

각 프로파일 Codex isolation (separate auth, 별도의 설치 플러그인, 별도의 구성)를 원한다면, 프로파일 당 CODEX_HOME을 명시적으로 설정합니다. 가장 청결한 방법은 당신의 HERMES_HOME의 밑에 디렉토리에 점 입니다:

# Inside the work profile, you might wrap hermes:
CODEX_HOME=~/.hermes/profiles/work/codex hermes chat
``codex login` 를 다시 실행해야 합니다. 그 후, `hermes -p work`는 격리된 코덱 상태에 동작합니다.

우리는 기존 사용자의 `~/.codex/`를 이동하기 때문에 자동 검사를하지 않습니다. Codex CLI auth - 이미 ran `codex login`가 재 승인을 받아야합니다. Opt-in은 사용자를 놀라게하는 것보다 더 안전합니다.

## HOME 환경변환 \{#self-improvement-loop-memory--skill-nudges}

헤르메스는 코덱 앱 서버 서브프로세스(`os.environ.copy()`를 사용하며, 오버레이 `CODEX_HOME``...`를 사용해서는 안 된다. 이 수단:

- Commands codex는 `shell` 도구를 통해 실행됩니다. 실제 사용자 `HOME`를 보고 `~/.gitconfig`, `~/.gh/`, `~/.aws/`, `~/.npmrc` 등을 찾아볼 수 있습니다.
- Codex의 내부 상태는 `CODEX_HOME` (기본값으로 `~/.codex/`)를 통해 격리됩니다.

이 일치 OpenClaw는 몇 가지 초기 실험 후 도착했습니다: isolate Codex의 상태, 사용자의 집을 혼자두고. (Cf. 오픈클로 / 오픈클로 #81562.)

## MCP 서버 마이그레이션 \{#how-approvals-work}

Hermes' `mcp_servers` config는 TOML 형식 코덱에 자동 변환됩니다. 마이그레이션은 실행 시간을 활성화하고 idempotent - 재 실행은 관리 섹션을 대체하지만 모든 사용자 편집 된 Codex 구성을 보존합니다.

어떤 번역:

| 헤르메스 (`config.yaml`) | 코덱 (`config.toml`) |
|---|---|
| `command` + `args` + `env` | stdio 수송 |
| `url` + `headers` | streamable_http 수송 |
| `timeout` | `tool_timeout_sec` |
| `connect_timeout` | `startup_timeout_sec` |
| `enabled: false` | `enabled = false` |

무엇 마이그레이션 하지:
- `sampling` (Codex's MCP 클라이언트는 해당하지 않습니다 - 이것은 per-server 경고로 떨어졌습니다).

## Native Codex 플러그인 마이그레이션 \{#permission-profiles}

플러그인을 통해 설치 `codex plugin` (Linear, GitHub, Gmail, 캘린더, Canva 등)는 Codex의 __HMES_TOKEN_00001__ RPC를 통해 발견됩니다. 각 플러그인의 경우 `installed: true`, Hermes는 `[plugins."<name>@openai-선별된"]` 블록을 작성하여 테마 세션에서 활성화합니다.

즉, 친구가 "I have Calendar and GitHub set up in my Codex CLI"라고 말하면 Hermes' codex runtime, Hermes가 자동으로 활성화됩니다. 재 구성이 필요 없습니다.

무엇 마이그레이션 하지 않습니다:
- 아직 설치하지 않은 플러그인 — Codex에 설치.
- codex 보고서가있는 플러그인 `availability != AVAILABLE` (OAuth를 설치, 만료, 마켓 플레이스에서 제거 등). 이것은 활성화 시간에 실패 할 config를 작성하기 위해 건너 뛰고있다.
- ChatGPT 앱 마켓 플레이스 항목 (당 계정 `app/list` 결과 - 이것은 이미 계정auth의 virtue에 의해 코덱 내에서 활성화됩니다).
- Plugin OAuth — Codex 자체에서 한 번 각 플러그인을 승인합니다. Hermes는 credentials를 만지지 않습니다.

## Hermes 도구 콜백 (새로운 MCP 서버) \{#auxiliary-tasks-and-chatgpt-subscription-token-cost}

Codex의 내장 툴킷은 쉘/파일 ops/patches를 커버하지만 웹 검색, 브라우저 자동화, 비전, 이미지 생성 등을 가지고 있지 않습니다. 코드 턴에서 사용 가능한 것을 유지하기 위해 Hermes는 `~/.codex/config.toml`의 MCP 서버로 등록합니다

```toml
[mcp_servers.hermes-tools]
command = "/path/to/python"
args = ["-m", "agent.transports.hermes_tools_mcp_server"]
env = { HERMES_HOME = "/your/.hermes", PYTHONPATH = "...", HERMES_QUIET = "1" }
startup_timeout_sec = 30.0
tool_timeout_sec = 600.0

모델이 호출 할 때 web_search (또는 다른 노출 된 헤르메스 도구), 코드 스페이즈 hermes_tools_mcp_server 하위 프로세싱을 통해 stdio, 요청은 model_tools.handle_function_call()를 통해 파견되며, 결과는 다른 MCP 응답과 같은 코덱으로 다시 프로젝트됩니다.

** 콜백을 통해 사용할 수있는 도구:** web_search, web_extract, browser_navigate, browser_click, browser_type, browser_press, ..., ..., ..., ..., ..., __H.

도구 가능: delegate_task, memory, session_search, todo. 이러한 실행 AIAgent context (mid-loop state) 및 stateless MCP 콜백은 그들을 구동 할 수 없습니다. 기본적으로 Hermes runtime (/codex-runtime auto)를 사용하면 됩니다.

지원하다

언제든지 스위치:

/codex-runtime auto

다음 세션에 효과적인. Codex 관리 블록은 ~/.codex/config.toml에 머물므로 config를 잃지 않고 나중에 다시 활성화하거나 수동으로 제거 할 수 있습니다.

계정 관리

이 런타임은 opt-in beta입니다. 헤르메스 에이전트로 작업 2026.5 + 코덱 CLI 0.130.0:

  • 멀티턴 대화
  • commandExecutionfileChange (apply_patch)는 Hermes UI를 통해 승인
  • MCP 도구 호출 (@modelcontextprotocol/server-filesystem 및 새로운 hermes-tools 콜백에 대한 인증)
  • Native Codex 플러그인 마이그레이션 (리니어 / GitHub / 캘린더 재고 있음)
  • Deny/cancel 경로
  • 토글 온/오프 주기
  • 메모리 및 기술 판결 카운터 (통합 테스트를 통해 통합 된 라이브)
  • Hermes web_search through codex (verified live: "OpenAI Codex CLI – 시작하기" 반환된 종료)

알려진 제한:

  • Hermes auth 및 codex auth는 별도의 세션입니다. codex loginhermes auth login codex가 모두 필요합니다. 이것은 Hermes의 deliberate 디자인 선택입니다 _import_codex_cli_tokens — Hermes는 토큰 상에서 서로 복제를 방지하기 위해 코덱 CLI와 OAuth 상태를 공유하지 않습니다.
  • delegate_task, memory, session_search, todo는 이 실행 시간에 사용할 수 없습니다. 그들은 stateless MCP 콜백이 제공하지 않는 AIAgent context를 실행해야합니다. 이것을 필요로 할 때 /codex-runtime auto를 사용하세요.
  • ** Codex가 변경 사항을 추적하지 않는 경우 인라인 패치 미리보기 없음.** Codex의 fileChange 승인은 항상 변경 사항을 수행하지 않습니다. Hermes는 해당 item/started 알림에서 데이터를 캐시합니다. 그러나 승인이 스트림되기 전에 도착하면 reason codex가 제공한 모든 것을 다시 돌아갑니다.
  • **Sub-second 취소는 보장되지 않습니다. ** Mid-stream breaks (Ctrl+C while codex is responseing)는 turn/interrupt를 통해 전송되지만, codex가 이미 최종 메시지를 플러싱한 경우, 응답을 어쨌든 얻을 수 있습니다.

버그를 발견하면 문제를 열어의 출력으로 hermes logs --since 5m. Mention codex-runtime라는 제목으로 삼는 것이 쉽습니다.

회사연혁

                ┌─── Hermes shell (CLI / TUI / gateway) ───┐
│ sessions DB · slash commands · memory │
│ & skill review · cron · session pickers │
└──┬──────────────────────────────────────┬┘
│ user_message final │
▼ text + │
┌──────────────────────────────────┐ projected │
│ AIAgent.run_conversation() │ messages │
│ if api_mode == codex_app_server │ │
│ → CodexAppServerSession │ │
│ else: chat_completions / codex_responses (default)
└────┬─────────────────────────────┘ │
│ JSON-RPC over stdio │
▼ │
┌──────────────────────────────────┐ │
│ codex app-server (subprocess) │──────────────┘
│ thread/start, turn/start │
│ item/* notifications │
│ shell + apply_patch + update_plan│
│ view_image + sandbox │
│ ┌─────────────────────────┐ │
│ │ MCP client │ │
│ │ ├─ user MCP servers │ │
│ │ ├─ native plugins │ │
│ │ │ (linear, github, │ │
│ │ │ gmail, calendar, │ │
│ │ │ canva,...) │ │
│ │ └─ hermes-tools ───────┼─────────────────┐
│ │ (callback to │ │ │
│ │ Hermes' richer │ │ │
│ │ tools) │ │ │
│ └─────────────────────────┘ │ │
└──────────────────────────────────┘ │


┌──────────────────────────────────────────────────────────┐
│ hermes_tools_mcp_server.py (subprocess on demand) │
│ web_search, web_extract, browser_*, vision_analyze, │
│ image_generate, skill_view, skills_list, text_to_speech│
└──────────────────────────────────────────────────────────┘

구현 세부 사항에 대해서는 PR #24182Codex 앱 서버 프로토콜 README를 참조하세요.