hermes - 💡(How to fix) Fix [i18n] Thai Translation: User Guide Part 1 [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#14650Fetched 2026-04-24 06:15:41
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Author
Participants
Timeline (top)
labeled ×2

Error Message

│ 2. Disk I/O error on /dev/sda1 at 07:15 │

  • Long-running research - "/background research the latest developments in quantum error correction" ขณะที่คุณกำลังเขียนโค้ด

Code Example

# Start an interactive session (default)
hermes

# Single query mode (non-interactive)
hermes chat -q "Hello"

# With a specific model
hermes chat --model "anthropic/claude-sonnet-4"

# With a specific provider
hermes chat --provider nous        # Use Nous Portal
hermes chat --provider openrouter  # Force OpenRouter

# With specific toolsets
hermes chat --toolsets "web,terminal,skills"

# Start with one or more skills preloaded
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# Resume previous sessions
hermes --continue             # Resume the most recent CLI session (-c)
hermes --resume <session_id>  # Resume a specific session by ID (-r)

# Verbose mode (debug output)
hermes chat --verbose

# Isolated git worktree (for running multiple agents in parallel)
hermes -w                         # Interactive mode in worktree
hermes -w -q "Fix issue #123"     # Single query in worktree

---

⚕ claude-sonnet-4-2025051412.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m

---

# ~/.hermes/config.yaml
quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  gpu:
    type: exec
    command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader

---

hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -s github-auth

---

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor

# เพียงแค่ชื่อ skill ก็โหลดมันและปล่อยให้ agent ถามว่าคุณต้องการอะไร:
/excalidraw

---

/personality pirate
/personality kawaii
/personality concise

---

personalities:
  helpful: "You are a helpful, friendly AI assistant."
  kawaii: "You are a kawaii assistant! Use cute expressions..."
  pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  # Add your own!

---

Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum

---

# ~/.hermes/config.yaml
display:
  busy_input_mode: "queue"   # หรือ "interrupt" (default)

---

Hermes Agent has been suspended. Run `fg` to bring Hermes Agent back.

---

 (。•́︿•̀。) pondering... (1.2s)
   (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

---

┊ 💻 terminal `ls -la` (0.3s)
  ┊ 🔍 web_search (1.2s)
  ┊ 📄 web_extract (2.1s)

---

# ~/.hermes/config.yaml
display:
  tool_preview_length: 80   # Truncate tool previews to 80 chars (0 = no limit)

---

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

Session:        20260225_143052_a1b2c3
Duration:       12m 34s
Messages:       28 (5 user, 18 tool calls)

---

hermes --continue                          # Resume the most recent CLI session
hermes -c                                  # รูปแบบย่อ
hermes -c "my project"                     # Resume named session (ล่าสุดใน lineage)
hermes --resume 20260225_143052_a1b2c3     # Resume specific session by ID
hermes --resume "refactoring auth"         # Resume by title
hermes -r 20260225_143052_a1b2c3           # รูปแบบย่อ

---

# In ~/.hermes/config.yaml
compression:
  enabled: true
  threshold: 0.50    # Compress at 50% of context limit by default

# Summarization model configured under auxiliary:
auxiliary:
  compression:
    model: "google/gemini-3-flash-preview"  # Model used for summarization

---

/background Analyze the logs in /var/log and summarize any errors from today

---

🔄 Background task #1 started: "Analyze the logs in /var/log and summarize..."
   Task ID: bg_143022_a1b2c3

---

╭─ ⚕ Hermes (background #1) ──────────────────────────────────╮
Found 3 errors in syslog from today:1. OOM killer invoked at 03:22 — killed process nginx        │
2. Disk I/O error on /dev/sda1 at 07:153. Failed SSH login attempts from 192.168.1.50 at 14:30╰──────────────────────────────────────────────────────────────╯

---

hermes chat --verbose

---

# Launch the TUI
hermes --tui

# Resume the latest TUI session (falls back to the latest classic session)
hermes --tui -c
hermes --tui --continue

# Resume a specific session by ID or title
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"

# Run source directly - skips the prebuild step (for TUI contributors)
hermes --tui --dev

---

export HERMES_TUI=1
hermes          # now uses the TUI
hermes chat     # same

---

export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui

---

display:
  skin: default          # any built-in or custom skin
  personality: helpful
  details_mode: compact  # or "verbose" - default tool-call detail level
  mouse_tracking: true   # disable if your terminal conflicts with mouse reporting

---

hermes profile create coder       # สร้าง profile + alias คำสั่ง "coder"
coder setup                       # กำหนดค่า API keys และ model
coder chat                        # เริ่มการแชท

---

hermes profile create mybot

---

hermes profile create work --clone

---

hermes profile create backup --clone-all

---

hermes profile create work --clone --clone-from coder

---

coder chat                    # แชทกับ coder agent
coder setup                   # กำหนดค่า settings ของ coder
coder gateway start           # เริ่ม gateway ของ coder
coder doctor                  # ตรวจสอบสถานะของ coder
coder skills list             # แสดงรายการ skills ของ coder
coder config set model.model anthropic/claude-sonnet-4

---

hermes -p coder chat
hermes --profile=coder doctor
hermes chat -p coder -q "hello"    # ใช้ได้ในทุกตำแหน่ง

---

hermes profile use coder
hermes chat                   # ตอนนี้จะ target coder
hermes tools                  # กำหนดค่า tools ของ coder
hermes profile use default    # สลับกลับ

---

terminal:
  backend: local
  cwd: /absolute/path/to/project

---

coder gateway start           # เริ่ม gateway ของ coder
assistant gateway start       # เริ่ม gateway ของ assistant (process แยกต่างหาก)

---

# แก้ไข tokens ของ coder
nano ~/.hermes/profiles/coder/.env

# แก้ไข tokens ของ assistant
nano ~/.hermes/profiles/assistant/.env

---

coder gateway install         # สร้าง service hermes-gateway-coder systemd/launchd
assistant gateway install     # สร้าง service hermes-gateway-assistant

---

coder config set model.model anthropic/claude-sonnet-4
echo "You are a focused coding assistant." > ~/.hermes/profiles/coder/SOUL.md

---

coder config set terminal.cwd /absolute/path/to/project

---

hermes update
# → Code updated (12 commits)
# → Skills synced: default (up to date), coder (+2 new), assistant (+2 new)

---

hermes profile list           # แสดง profile ทั้งหมดพร้อมสถานะ
hermes profile show coder     # ข้อมูลโดยละเอียดสำหรับ profile หนึ่ง
hermes profile rename coder dev-bot   # เปลี่ยนชื่อ (อัปเดต alias + service)
hermes profile export coder   # export เป็น coder.tar.gz
hermes profile import coder.tar.gz   # import จาก archive

---

hermes profile delete coder

---

# Bash
eval "$(hermes completion bash)"

# Zsh
eval "$(hermes completion zsh)"
RAW_BUFFERClick to expand / collapse

📄 user-guide/cli.md


sidebar_position: 1 title: "CLI Interface" description: "Master the Hermes Agent terminal interface - commands, keybindings, personalities, and more"

CLI Interface

CLI ของ Hermes Agent คือ full terminal user interface (TUI) - ไม่ใช่ web UI มันมีคุณสมบัติการแก้ไขหลายบรรทัด (multiline editing), การเติมคำอัตโนมัติด้วย slash-command, ประวัติการสนทนา, การขัดจังหวะและเปลี่ยนเส้นทาง (interrupt-and-redirect), และการสตรีมผลลัพธ์ของเครื่องมือ (streaming tool output) ถูกสร้างขึ้นสำหรับผู้ที่ใช้ชีวิตอยู่ใน terminal

:::tip นอกจากนี้ Hermes ยังมาพร้อมกับ TUI สมัยใหม่ที่มี modal overlays, การเลือกด้วยเมาส์, และการรับ input แบบ non-blocking สามารถเปิดใช้งานได้ด้วย hermes --tui - ดูคู่มือ TUI :::

Running the CLI

# Start an interactive session (default)
hermes

# Single query mode (non-interactive)
hermes chat -q "Hello"

# With a specific model
hermes chat --model "anthropic/claude-sonnet-4"

# With a specific provider
hermes chat --provider nous        # Use Nous Portal
hermes chat --provider openrouter  # Force OpenRouter

# With specific toolsets
hermes chat --toolsets "web,terminal,skills"

# Start with one or more skills preloaded
hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -q "open a draft PR"

# Resume previous sessions
hermes --continue             # Resume the most recent CLI session (-c)
hermes --resume <session_id>  # Resume a specific session by ID (-r)

# Verbose mode (debug output)
hermes chat --verbose

# Isolated git worktree (for running multiple agents in parallel)
hermes -w                         # Interactive mode in worktree
hermes -w -q "Fix issue #123"     # Single query in worktree

Interface Layout

<img className="docs-terminal-figure" src="/img/docs/cli-layout.svg" alt="Stylized preview of the Hermes CLI layout showing the banner, conversation area, and fixed input prompt." /> <p className="docs-figure-caption">แบนเนอร์ของ Hermes CLI, สตรีมการสนทนา, และ input prompt แบบคงที่ ถูกแสดงผลเป็น stable docs figure แทนที่จะเป็น text art ที่เปราะบาง</p>

แบนเนอร์ต้อนรับจะแสดง model, terminal backend, working directory, available tools, และ installed skills ของคุณให้เห็นในทันที

Status Bar

status bar แบบถาวรจะอยู่เหนือพื้นที่ input และจะอัปเดตแบบ real time:

 ⚕ claude-sonnet-4-20250514 │ 12.4K/200K │ [██████░░░░] 6% │ $0.06 │ 15m
ElementDescription
Model namemodel ปัจจุบัน (ถูกตัดทอนหากยาวกว่า 26 chars)
Token countcontext tokens ที่ใช้ / context window สูงสุด
Context barตัวบ่งชี้การเติมแบบภาพพร้อมเกณฑ์สีที่แตกต่างกัน
Costค่าใช้จ่ายโดยประมาณของ session (หรือ n/a สำหรับ model ที่ไม่ทราบ/ราคาศูนย์)
Durationเวลาที่ผ่านไปของ session

แถบนี้จะปรับตามความกว้างของ terminal - แสดงผลแบบเต็มที่ ≥ 76 columns, แบบกระชับที่ 52–75, และแบบ minimal (แสดงเฉพาะ model + duration) เมื่อต่ำกว่า 52

การกำหนดสีของ Context:

ColorThresholdMeaning
Green< 50%ยังมีพื้นที่เหลือเฟือ
Yellow50–80%ใกล้เต็มแล้ว
Orange80–95%ใกล้ถึงขีดจำกัด
Red≥ 95%ใกล้ล้น — พิจารณาใช้ /compress

ใช้ /usage เพื่อดูรายละเอียดการแจกแจง รวมถึงค่าใช้จ่ายต่อหมวดหมู่ (input vs output tokens)

Session Resume Display

เมื่อคุณ resume session ก่อนหน้า (hermes -c หรือ hermes --resume <id>) แผง "Previous Conversation" จะปรากฏขึ้นระหว่างแบนเนอร์และ input prompt โดยแสดงสรุปย่อของประวัติการสนทนา ดู Sessions - Conversation Recap on Resume สำหรับรายละเอียดและการตั้งค่า

Keybindings

KeyAction
Enterส่งข้อความ
Alt+Enter หรือ Ctrl+Jบรรทัดใหม่ (input หลายบรรทัด)
Alt+Vวางรูปภาพจาก clipboard เมื่อ terminal รองรับ
Ctrl+Vวางข้อความและแนบรูปภาพจาก clipboard โดยอัตโนมัติ
Ctrl+Bเริ่ม/หยุดบันทึกเสียงเมื่อเปิดใช้งาน voice mode (voice.record_key, default: ctrl+b)
Ctrl+Cขัดจังหวะ agent (กดสองครั้งภายใน 2s เพื่อบังคับออก)
Ctrl+Dออกจากระบบ
Ctrl+Zระงับ Hermes ไปยัง background (สำหรับ Unix เท่านั้น) รัน fg ใน shell เพื่อกลับมาใช้งาน
Tabยอมรับ auto-suggestion (ghost text) หรือเติมคำอัตโนมัติสำหรับ slash commands

Slash Commands

พิมพ์ / เพื่อดู dropdown auto-complete Hermes รองรับ slash commands จำนวนมาก, dynamic skill commands, และ quick commands ที่กำหนดโดยผู้ใช้

ตัวอย่างทั่วไป:

CommandDescription
/helpแสดงความช่วยเหลือของคำสั่ง
/modelแสดงหรือเปลี่ยน model ปัจจุบัน
/toolsแสดงรายการ tools ที่พร้อมใช้งาน
/skills browseเรียกดู skills hub และ skills ทางเลือกอย่างเป็นทางการ
/background <prompt>รัน prompt ใน background session แยกต่างหาก
/skinแสดงหรือสลับ CLI skin ที่ใช้งานอยู่
/voice onเปิดใช้งาน voice mode ของ CLI (กด Ctrl+B เพื่อบันทึก)
/voice ttsสลับการเล่นเสียงสำหรับคำตอบของ Hermes
/reasoning highเพิ่มความพยายามในการให้เหตุผล
/title My Sessionตั้งชื่อ session ปัจจุบัน

สำหรับรายการ built-in CLI และ messaging ทั้งหมด ดู Slash Commands Reference

สำหรับการตั้งค่า, providers, silence tuning, และการใช้งาน voice สำหรับ messaging/Discord ดู Voice Mode

:::tip คำสั่งไม่คำนึงถึงตัวพิมพ์ใหญ่-เล็ก - /HELP ทำงานเหมือนกับ /help installed skills จะกลายเป็น slash commands โดยอัตโนมัติ :::

Quick Commands

คุณสามารถกำหนด custom commands ที่รัน shell commands ทันทีโดยไม่ต้องเรียกใช้ LLM คำสั่งเหล่านี้ใช้ได้ทั้งใน CLI และ messaging platforms (Telegram, Discord, etc.)

# ~/.hermes/config.yaml
quick_commands:
  status:
    type: exec
    command: systemctl status hermes-agent
  gpu:
    type: exec
    command: nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv,noheader

จากนั้นพิมพ์ /status หรือ /gpu ใน chat ใดก็ได้ ดู Configuration guide สำหรับตัวอย่างเพิ่มเติม

Preloading Skills at Launch

หากคุณทราบล่วงหน้าว่าต้องการให้ skills ใดทำงานสำหรับ session นั้น ให้ส่งผ่านตอนเริ่มใช้งาน:

hermes -s hermes-agent-dev,github-auth
hermes chat -s github-pr-workflow -s github-auth

Hermes จะโหลดแต่ละ skill ที่ระบุชื่อเข้าสู่ session prompt ก่อนรอบแรก Flag เดียวกันใช้ได้ทั้งในโหมด interactive และ single-query mode

Skill Slash Commands

ทุก skill ที่ติดตั้งใน ~/.hermes/skills/ จะถูกลงทะเบียนเป็น slash command โดยอัตโนมัติ ชื่อ skill จะกลายเป็นคำสั่ง:

/gif-search funny cats
/axolotl help me fine-tune Llama 3 on my dataset
/github-pr-workflow create a PR for the auth refactor

# เพียงแค่ชื่อ skill ก็โหลดมันและปล่อยให้ agent ถามว่าคุณต้องการอะไร:
/excalidraw

Personalities

กำหนด personality ที่กำหนดไว้ล่วงหน้าเพื่อเปลี่ยนโทนของ agent:

/personality pirate
/personality kawaii
/personality concise

built-in personalities ได้แก่: helpful, concise, technical, creative, teacher, kawaii, catgirl, pirate, shakespeare, surfer, noir, uwu, philosopher, hype

คุณยังสามารถกำหนด personality เองได้ใน ~/.hermes/config.yaml:

personalities:
  helpful: "You are a helpful, friendly AI assistant."
  kawaii: "You are a kawaii assistant! Use cute expressions..."
  pirate: "Arrr! Ye be talkin' to Captain Hermes..."
  # Add your own!

Multi-line Input

มีสองวิธีในการป้อนข้อความหลายบรรทัด:

  1. Alt+Enter หรือ Ctrl+J - แทรกบรรทัดใหม่
  2. Backslash continuation - จบบรรทัดด้วย \ เพื่อดำเนินการต่อ:
❯ Write a function that:\
  1. Takes a list of numbers\
  2. Returns the sum

:::info รองรับการวางข้อความหลายบรรทัด - ใช้ Alt+Enter หรือ Ctrl+J เพื่อแทรกบรรทัดใหม่ หรือวางเนื้อหาโดยตรง :::

Interrupting the Agent

คุณสามารถขัดจังหวะ agent ได้ทุกเมื่อ:

  • พิมพ์ข้อความใหม่ + Enter ขณะที่ agent กำลังทำงาน - จะขัดจังหวะและประมวลผลคำสั่งใหม่ของคุณ
  • Ctrl+C - ขัดจังหวะการทำงานปัจจุบัน (กดสองครั้งภายใน 2s เพื่อบังคับออก)
  • คำสั่ง terminal ที่กำลังดำเนินการอยู่จะถูกยกเลิกทันที (SIGTERM, ตามด้วย SIGKILL หลัง 1s)
  • ข้อความหลายรายการที่พิมพ์ระหว่างการขัดจังหวะจะถูกรวมเป็น prompt เดียว

Busy Input Mode

คีย์ config display.busy_input_mode ควบคุมว่าจะเกิดอะไรขึ้นเมื่อคุณกด Enter ขณะที่ agent กำลังทำงาน:

ModeBehavior
"interrupt" (default)ข้อความของคุณจะขัดจังหวะการทำงานปัจจุบันและถูกประมวลผลทันที
"queue"ข้อความของคุณจะถูกจัดคิวอย่างเงียบๆ และถูกส่งเป็น turn ถัดไปหลังจากที่ agent ทำงานเสร็จ
# ~/.hermes/config.yaml
display:
  busy_input_mode: "queue"   # หรือ "interrupt" (default)

Queue mode มีประโยชน์เมื่อคุณต้องการเตรียมข้อความ follow-up โดยไม่เผลอไปยกเลิกงานที่กำลังดำเนินการอยู่ ค่าที่ไม่ทราบจะกลับไปใช้ "interrupt"

Suspending to Background

ในระบบ Unix ให้กด Ctrl+Z เพื่อระงับ Hermes ไปยัง background - เหมือนกับกระบวนการ terminal ใดๆ shell จะแสดงข้อความยืนยัน:

Hermes Agent has been suspended. Run `fg` to bring Hermes Agent back.

พิมพ์ fg ใน shell ของคุณเพื่อกลับมาใช้งาน session ณ จุดที่คุณทิ้งไว้ นี่ไม่รองรับบน Windows

Tool Progress Display

CLI จะแสดง feedback แบบ animated ขณะที่ agent ทำงาน:

Thinking animation (ระหว่างการเรียก API):

  ◜ (。•́︿•̀。) pondering... (1.2s)
  ◠ (⊙_⊙) contemplating... (2.4s)
  ✧٩(ˊᗜˋ*)و✧ got it! (3.1s)

Tool execution feed:

  ┊ 💻 terminal `ls -la` (0.3s)
  ┊ 🔍 web_search (1.2s)
  ┊ 📄 web_extract (2.1s)

วนรอบ display modes ด้วย /verbose: off → new → all → verbose คำสั่งนี้ยังสามารถเปิดใช้งานสำหรับ messaging platforms ได้ด้วย - ดู configuration

Tool Preview Length

คีย์ config display.tool_preview_length ควบคุมจำนวนอักขระสูงสุดที่แสดงในบรรทัด preview ของ tool call (เช่น file paths, terminal commands) ค่า default คือ 0 ซึ่งหมายถึงไม่มีขีดจำกัด - จะแสดง full paths และ commands

# ~/.hermes/config.yaml
display:
  tool_preview_length: 80   # Truncate tool previews to 80 chars (0 = no limit)

สิ่งนี้มีประโยชน์ใน terminal ที่แคบ หรือเมื่อ tool arguments มี file paths ที่ยาวมาก

Session Management

Resuming Sessions

เมื่อคุณออกจาก CLI session จะมีการพิมพ์คำสั่ง resume:

Resume this session with:
  hermes --resume 20260225_143052_a1b2c3

Session:        20260225_143052_a1b2c3
Duration:       12m 34s
Messages:       28 (5 user, 18 tool calls)

ตัวเลือกการ resume:

hermes --continue                          # Resume the most recent CLI session
hermes -c                                  # รูปแบบย่อ
hermes -c "my project"                     # Resume named session (ล่าสุดใน lineage)
hermes --resume 20260225_143052_a1b2c3     # Resume specific session by ID
hermes --resume "refactoring auth"         # Resume by title
hermes -r 20260225_143052_a1b2c3           # รูปแบบย่อ

การ resume จะกู้คืน full conversation history จาก SQLite agent จะเห็นข้อความ, tool calls, และ responses ก่อนหน้าทั้งหมด เหมือนกับว่าคุณไม่เคยออกไปไหนเลย

ใช้ /title My Session Name ภายใน chat เพื่อตั้งชื่อ session ปัจจุบัน หรือใช้ hermes sessions rename <id> <title> จาก command line ใช้ hermes sessions list เพื่อเรียกดู past sessions

Session Storage

CLI sessions ถูกเก็บไว้ในฐานข้อมูล state ของ SQLite ของ Hermes ที่ ~/.hermes/state.db ฐานข้อมูลนี้เก็บ:

  • session metadata (ID, title, timestamps, token counters)
  • message history
  • lineage across compressed/resumed sessions
  • full-text search indexes ที่ใช้โดย session_search

บาง messaging adapters ยังเก็บไฟล์ transcript ต่อ platform ควบคู่ไปกับฐานข้อมูล แต่ตัว CLI เองจะ resume จาก SQLite session store

Context Compression

การสนทนาที่ยาวจะถูกสรุปโดยอัตโนมัติเมื่อเข้าใกล้ขีดจำกัดของ context:

# In ~/.hermes/config.yaml
compression:
  enabled: true
  threshold: 0.50    # Compress at 50% of context limit by default

# Summarization model configured under auxiliary:
auxiliary:
  compression:
    model: "google/gemini-3-flash-preview"  # Model used for summarization

เมื่อการบีบอัด (compression) ทำงาน จะมีการสรุปช่วงกลางของการสนทนา ในขณะที่ 3 รอบแรกและ 4 รอบสุดท้ายจะถูกเก็บรักษาไว้เสมอ

Background Sessions

รัน prompt ใน background session แยกต่างหาก ในขณะที่ยังคงใช้ CLI สำหรับงานอื่น:

/background Analyze the logs in /var/log and summarize any errors from today

Hermes จะยืนยันงานทันทีและคืน prompt ให้คุณ:

🔄 Background task #1 started: "Analyze the logs in /var/log and summarize..."
   Task ID: bg_143022_a1b2c3

How It Works

แต่ละ prompt /background จะสร้าง agent session ที่แยกจากกันโดยสมบูรณ์ ใน daemon thread:

  • Isolated conversation - background agent ไม่มีข้อมูลประวัติของ session ปัจจุบันของคุณ มันได้รับเพียง prompt ที่คุณให้เท่านั้น
  • Same configuration - background agent สืบทอด model, provider, toolsets, reasoning settings, และ fallback model ของ session ปัจจุบัน
  • Non-blocking - foreground session ของคุณยังคงโต้ตอบได้อย่างเต็มที่ คุณสามารถ chat, run commands, หรือแม้แต่เริ่ม background tasks เพิ่มเติม
  • Multiple tasks - คุณสามารถรัน background tasks ได้หลายอย่างพร้อมกัน แต่ละงานจะได้รับ ID แบบมีหมายเลข

Results

เมื่อ background task เสร็จสิ้น ผลลัพธ์จะปรากฏเป็น panel ใน terminal ของคุณ:

╭─ ⚕ Hermes (background #1) ──────────────────────────────────╮
│ Found 3 errors in syslog from today:                         │
│ 1. OOM killer invoked at 03:22 — killed process nginx        │
│ 2. Disk I/O error on /dev/sda1 at 07:15                      │
│ 3. Failed SSH login attempts from 192.168.1.50 at 14:30      │
╰──────────────────────────────────────────────────────────────╯

หากงานล้มเหลว คุณจะเห็นการแจ้งเตือนข้อผิดพลาดแทน หาก display.bell_on_complete เปิดใช้งานใน config ของคุณ terminal bell จะดังเมื่องานเสร็จสิ้น

Use Cases

  • Long-running research - "/background research the latest developments in quantum error correction" ขณะที่คุณกำลังเขียนโค้ด
  • File processing - "/background analyze all Python files in this repo and list any security issues" ขณะที่คุณสนทนาต่อ
  • Parallel investigations - เริ่ม background tasks หลายงานเพื่อสำรวจมุมมองที่แตกต่างกันพร้อมกัน

:::info Background sessions จะไม่ปรากฏใน main conversation history ของคุณ พวกมันเป็น standalone sessions ที่มี task ID ของตัวเอง (เช่น bg_143022_a1b2c3) :::

Quiet Mode

โดยค่าเริ่มต้น CLI จะทำงานใน quiet mode ซึ่ง:

  • ปิดการบันทึก verbose logging จาก tools
  • เปิดใช้งาน feedback แบบ animated สไตล์ kawaii
  • รักษา output ให้สะอาดและใช้งานง่าย

สำหรับการ debug output:

hermes chat --verbose

📄 user-guide/tui.md


sidebar_position: 2 title: "TUI" description: "เปิดใช้งาน TUI (Terminal UI) สมัยใหม่สำหรับ Hermes - ใช้งานง่ายด้วยเมาส์, มีโอเวอร์เลย์ที่หลากหลาย, และรับอินพุตแบบไม่บล็อก"

TUI

TUI คือ front-end สมัยใหม่สำหรับ Hermes - เป็น terminal UI ที่ใช้ Python runtime เดียวกับ Classic CLI มี agent, session, และ slash command เดิม แต่เป็น surface ที่สะอาดกว่าและตอบสนองได้ดีกว่าสำหรับการโต้ตอบกับคำสั่งเหล่านั้น

นี่คือวิธีที่แนะนำในการใช้งาน Hermes แบบโต้ตอบ (interactively).

Launch

# Launch the TUI
hermes --tui

# Resume the latest TUI session (falls back to the latest classic session)
hermes --tui -c
hermes --tui --continue

# Resume a specific session by ID or title
hermes --tui -r 20260409_000000_aa11bb
hermes --tui --resume "my t0p session"

# Run source directly - skips the prebuild step (for TUI contributors)
hermes --tui --dev

คุณยังสามารถเปิดใช้งานผ่าน env var ได้:

export HERMES_TUI=1
hermes          # now uses the TUI
hermes chat     # same

Classic CLI ยังคงใช้งานได้เป็นค่าเริ่มต้น สิ่งใดที่ถูกบันทึกไว้ใน CLI Interface - slash commands, quick commands, skill preloading, personalities, multi-line input, interrupts - จะทำงานใน TUI ได้อย่างเหมือนกันทุกประการ

Why the TUI

  • Instant first frame - แบนเนอร์จะแสดงผลก่อนที่แอปจะโหลดเสร็จ ทำให้ terminal ไม่รู้สึกค้างขณะที่ Hermes กำลังเริ่มต้น
  • Non-blocking input - สามารถพิมพ์และจัดคิวข้อความได้ก่อนที่ session จะพร้อม Prompt แรกของคุณจะถูกส่งออกไปทันทีที่ agent ออนไลน์
  • Rich overlays - ตัวเลือก model picker, session picker, และ prompt สำหรับการอนุมัติ/ชี้แจง จะแสดงผลเป็น modal panels แทนที่จะเป็น inline flows
  • Live session panel - เครื่องมือและ skill จะถูกเติมเข้ามาอย่างต่อเนื่องขณะที่พวกมันกำลังเริ่มต้น
  • Mouse-friendly selection - ลากเพื่อไฮไลต์ด้วยพื้นหลังที่สม่ำเสมอ แทนการใช้ SGR inverse คัดลอกด้วยท่าทางคัดลอกปกติของ terminal คุณ
  • Alternate-screen rendering - การอัปเดตแบบ differential ทำให้ไม่มีการกะพริบเมื่อ streaming และไม่มีขยะ scrollback หลังจากการออกจากระบบ
  • Composer affordances - รองรับการวาง (paste)-collapse แบบ inline สำหรับ snippets ยาวๆ, การวางข้อความด้วย Cmd+V / Ctrl+V พร้อม fallback สำหรับ clipboard-image, การวางแบบปลอดภัยด้วยวงเล็บ, และการทำให้การแนบ image/file-path เป็นมาตรฐาน

skins และ personalities ยังคงใช้ได้ตามปกติ คุณสามารถสลับระหว่าง session ด้วย /skin ares, /personality pirate และ UI จะวาดใหม่แบบสดๆ ดู Skins & Themes สำหรับรายการคีย์ที่ปรับแต่งได้ทั้งหมด และคีย์ใดที่ใช้ได้กับ classic vs TUI - TUI จะเคารพ palette ของแบนเนอร์, สี UI, glyph/สี prompt, การแสดงผล session, เมนู completion, selection bg, tool_prefix, และ help_header

Requirements

  • Node.js ≥ 20 - TUI ทำงานเป็น subprocess ที่ถูกเรียกใช้จาก Python CLI. hermes doctor จะตรวจสอบสิ่งนี้
  • TTY - เช่นเดียวกับ classic CLI การ pipe stdin หรือการทำงานในสภาพแวดล้อมที่ไม่โต้ตอบ จะ fallback ไปที่โหมด single-query

เมื่อเปิดใช้งานครั้งแรก Hermes จะติดตั้ง Node dependencies ของ TUI ลงใน ui-tui/node_modules (ทำครั้งเดียว ใช้เวลาไม่กี่วินาที) การเปิดใช้งานครั้งถัดไปจะรวดเร็ว หากคุณดึงเวอร์ชัน Hermes ใหม่ TUI bundle จะถูกสร้างใหม่โดยอัตโนมัติเมื่อ sources ใหม่กว่า dist

External prebuild

Distributions ที่มี prebuilt bundle (Nix, system packages) สามารถชี้ Hermes ไปที่มันได้:

export HERMES_TUI_DIR=/path/to/prebuilt/ui-tui
hermes --tui

Directory นั้นต้องมี dist/entry.js และ node_modules ที่เป็นปัจจุบัน

Keybindings

Keybindings ตรงกับ Classic CLI ทุกประการ ความแตกต่างด้านพฤติกรรมมีเพียง:

  • Mouse drag ไฮไลต์ข้อความด้วยพื้นหลังการเลือกที่สม่ำเสมอ
  • Cmd+V / Ctrl+V จะพยายามวางข้อความปกติก่อน จากนั้นจึง fallback ไปที่การอ่าน clipboard แบบ OSC52/native และสุดท้ายคือการแนบ image เมื่อ clipboard หรือ payload ที่วางนั้นเป็น image
  • /terminal-setup ติดตั้ง keybindings ของ terminal ใน VS Code / Cursor / Windsurf สำหรับการทำงานของ Cmd+Enter และ undo/redo ที่ดีขึ้นบน macOS
  • Slash autocompletion จะเปิดเป็น floating panel พร้อมคำอธิบาย ไม่ใช่ dropdown แบบ inline

Slash commands

Slash commands ทั้งหมดทำงานโดยไม่มีการเปลี่ยนแปลง บางคำสั่งเป็นของ TUI - พวกมันจะให้ output ที่หลากหลายกว่าหรือแสดงผลเป็น overlays แทนที่จะเป็น inline panels:

CommandTUI behavior
/helpOverlay ที่มีคำสั่งจัดหมวดหมู่ สามารถนำทางด้วยปุ่มลูกศร
/sessionsModal session picker - แสดงตัวอย่าง, ชื่อ, ยอด token, สรุป, resume แบบ inline
/modelModal model picker จัดกลุ่มตาม provider พร้อมคำแนะนำค่าใช้จ่าย
/skinLive preview - การเปลี่ยน theme จะมีผลขณะที่คุณเรียกดู
/detailsสลับการแสดงรายละเอียด tool-call แบบ verbose ใน transcript
/usagePanel token / cost / context ที่หลากหลาย

slash command อื่นๆ ทั้งหมด (รวมถึง installed skills, quick commands, และ personality toggles) ทำงานได้เหมือนกับ classic CLI ดู Slash Commands Reference

Status line

status line ของ TUI จะติดตามสถานะของ agent แบบเรียลไทม์:

StatusMeaning
starting agent…Session ID กำลังทำงาน; tools และ skills ยังกำลังออนไลน์ คุณสามารถพิมพ์ได้ - ข้อความจะถูกจัดคิวและส่งเมื่อพร้อม
readyAgent อยู่ในสถานะพร้อมรับ input
thinking… / running…Agent กำลังคิดหรือกำลังรัน tool
interruptedรอบปัจจุบันถูกยกเลิก; กด Enter เพื่อส่งอีกครั้ง
forging session… / resuming…การเชื่อมต่อเริ่มต้น หรือการ handshake ด้วย --resume

สีและเกณฑ์ของ status-bar ต่อ skin จะแชร์กับ classic CLI - ดู Skins สำหรับการปรับแต่ง

Configuration

TUI เคารพการตั้งค่า Hermes มาตรฐานทั้งหมด: ~/.hermes/config.yaml, profiles, personalities, skins, quick commands, credential pools, memory providers, tool/skill enablement. ไม่มีไฟล์ config เฉพาะ TUI

มีคีย์จำนวนเล็กน้อยที่ปรับแต่ง surface ของ TUI โดยเฉพาะ:

display:
  skin: default          # any built-in or custom skin
  personality: helpful
  details_mode: compact  # or "verbose" - default tool-call detail level
  mouse_tracking: true   # disable if your terminal conflicts with mouse reporting

/details on / /details off / /details cycle จะสลับสิ่งนี้ขณะรันไทม์

Sessions

Sessions ถูกแชร์ระหว่าง TUI และ classic CLI - ทั้งคู่เขียนไปยัง ~/.hermes/state.db คุณสามารถเริ่ม session ในที่หนึ่ง และ resume ในอีกที่หนึ่ง session picker จะแสดง sessions จากทั้งสองแหล่ง พร้อมแท็กแหล่งที่มา

ดู Sessions สำหรับ lifecycle, search, compression, และ export

Reverting to the classic CLI

การเรียกใช้ hermes (โดยไม่มี --tui) จะยังคงอยู่ใน classic CLI หากต้องการให้เครื่องเลือก TUI ให้ตั้งค่า HERMES_TUI=1 ใน shell profile ของคุณ หากต้องการกลับไปใช้แบบเดิม ให้ลบตัวแปรนี้ออก

หาก TUI ล้มเหลวในการเปิดใช้งาน (ไม่มี Node, bundle หายไป, ปัญหา TTY) Hermes จะพิมพ์ diagnostic และ fallback - แทนที่จะทำให้คุณติดขัด

See also


📄 user-guide/profiles.md


sidebar_position: 2

Profiles: การรันหลาย Agents

คุณสามารถรัน Hermes agents ที่เป็นอิสระหลายตัวบนเครื่องเดียวกัน โดยแต่ละตัวจะมี config, API keys, memory, sessions, skills, และ gateway state เป็นของตัวเอง

Profiles คืออะไร?

Profile คือ home directory ของ Hermes ที่แยกออกจากกัน แต่ละ profile จะมี directory ของตัวเอง ซึ่งบรรจุ config.yaml, .env, SOUL.md, memories, sessions, skills, cron jobs, และ state database ของตัวเอง Profiles ช่วยให้คุณสามารถรัน agents แยกกันสำหรับวัตถุประสงค์ที่แตกต่างกัน เช่น coding assistant, personal bot, หรือ research agent โดยที่ข้อมูล state ของ Hermes จะไม่ปะปนกัน

เมื่อคุณสร้าง profile มันจะกลายเป็น command ของตัวเองโดยอัตโนมัติ หากคุณสร้าง profile ชื่อ coder คุณจะมีคำสั่ง coder chat, coder setup, coder gateway start ฯลฯ ทันที

เริ่มต้นใช้งานอย่างรวดเร็ว

hermes profile create coder       # สร้าง profile + alias คำสั่ง "coder"
coder setup                       # กำหนดค่า API keys และ model
coder chat                        # เริ่มการแชท

แค่นี้ก็พอแล้ว coder จะเป็น Hermes profile ของตัวเองที่มี config, memory, และ state เป็นของตัวเอง

การสร้าง Profile

Blank profile

hermes profile create mybot

สร้าง profile ใหม่พร้อม skills ที่ถูกติดตั้งมาให้แล้ว ให้รัน mybot setup เพื่อกำหนดค่า API keys, model, และ gateway tokens

Clone config only (--clone)

hermes profile create work --clone

คัดลอก config.yaml, .env, และ SOUL.md จาก profile ปัจจุบันของคุณไปยัง profile ใหม่ จะใช้ API keys และ model เดียวกัน แต่จะมี sessions และ memory ที่สดใหม่ คุณสามารถแก้ไข ~/.hermes/profiles/work/.env สำหรับ API keys ที่แตกต่างกัน หรือ ~/.hermes/profiles/work/SOUL.md สำหรับบุคลิกภาพที่แตกต่างกัน

Clone everything (--clone-all)

hermes profile create backup --clone-all

คัดลอก ทุกอย่าง ทั้ง config, API keys, บุคลิกภาพ, memory ทั้งหมด, full session history, skills, cron jobs, และ plugins เป็นการ snapshot ที่สมบูรณ์แบบ มีประโยชน์สำหรับการสำรองข้อมูล หรือการแยก agent ที่มี context อยู่แล้ว

Clone from a specific profile

hermes profile create work --clone --clone-from coder

:::tip Honcho memory + profiles เมื่อเปิดใช้งาน Honcho, --clone จะสร้าง AI peer เฉพาะสำหรับ profile ใหม่โดยอัตโนมัติ ในขณะที่ยังคงใช้ user workspace เดียวกัน แต่ละ profile จะสร้าง observations และ identity ของตัวเอง ดูรายละเอียดได้ที่ Honcho -- Multi-agent / Profiles :::

การใช้ Profiles

Command aliases

ทุก profile จะได้รับ command alias โดยอัตโนมัติที่ ~/.local/bin/<name>:

coder chat                    # แชทกับ coder agent
coder setup                   # กำหนดค่า settings ของ coder
coder gateway start           # เริ่ม gateway ของ coder
coder doctor                  # ตรวจสอบสถานะของ coder
coder skills list             # แสดงรายการ skills ของ coder
coder config set model.model anthropic/claude-sonnet-4

alias นี้ใช้ได้กับทุก subcommand ของ hermes - ภายในจริงๆ คือ hermes -p <name>

Flag -p

คุณยังสามารถระบุ target เป็น profile อย่างชัดเจนด้วยคำสั่งใดๆ:

hermes -p coder chat
hermes --profile=coder doctor
hermes chat -p coder -q "hello"    # ใช้ได้ในทุกตำแหน่ง

Sticky default (hermes profile use)

hermes profile use coder
hermes chat                   # ตอนนี้จะ target coder
hermes tools                  # กำหนดค่า tools ของ coder
hermes profile use default    # สลับกลับ

ตั้งค่า default เพื่อให้คำสั่ง hermes ธรรมดา target ไปที่ profile นั้น เหมือนกับ kubectl config use-context

การทราบว่าคุณอยู่ที่ไหน

CLI จะแสดงเสมอว่า profile ใดกำลังทำงานอยู่:

  • Prompt: coder ❯ แทน
  • Banner: แสดง Profile: coder เมื่อเริ่มต้น
  • hermes profile: แสดงชื่อ profile ปัจจุบัน, path, model, และสถานะ gateway

Profiles vs workspaces vs sandboxing

Profiles มักจะถูกเข้าใจผิดว่าเป็น workspaces หรือ sandboxes แต่ทั้งสามอย่างนี้เป็นคนละอย่าง:

  • Profile ให้ state directory ของ Hermes เป็นของตัวเอง: config.yaml, .env, SOUL.md, sessions, memory, logs, cron jobs, และ gateway state
  • Workspace หรือ working directory คือที่ที่คำสั่ง terminal เริ่มต้น ถูกควบคุมแยกต่างหากโดย terminal.cwd
  • Sandbox คือสิ่งที่จำกัดการเข้าถึง filesystem Profiles ไม่ได้ sandbox agent

บน default local terminal backend, agent ยังคงมีการเข้าถึง filesystem เดียวกับบัญชีผู้ใช้ของคุณ Profile ไม่ได้หยุดการเข้าถึงโฟลเดอร์ที่อยู่นอก directory ของ profile

หากคุณต้องการให้ profile เริ่มต้นในโฟลเดอร์โปรเจกต์ที่เฉพาะเจาะจง ให้ตั้งค่า terminal.cwd แบบ absolute ใน config.yaml ของ profile นั้น:

terminal:
  backend: local
  cwd: /absolute/path/to/project

การใช้ cwd: "." บน local backend หมายถึง "directory ที่ Hermes ถูก launch ออกมา" ไม่ใช่ "profile directory"

โปรดทราบเพิ่มเติม:

  • SOUL.md สามารถแนะนำ model ได้ แต่ไม่ได้บังคับขอบเขตของ workspace
  • การเปลี่ยนแปลง SOUL.md จะมีผลอย่างชัดเจนใน session ใหม่ Sessions ที่มีอยู่เดิมอาจยังคงใช้ prompt state เก่า
  • การถาม model ว่า "คุณอยู่ใน directory ไหน?" ไม่ใช่การทดสอบการแยกตัวที่เชื่อถือได้ หากคุณต้องการ directory เริ่มต้นที่คาดเดาได้สำหรับ tools ให้ตั้งค่า terminal.cwd อย่างชัดเจน

การรัน Gateways

แต่ละ profile จะรัน gateway ของตัวเองเป็น process แยกต่างหากพร้อม bot token ของตัวเอง:

coder gateway start           # เริ่ม gateway ของ coder
assistant gateway start       # เริ่ม gateway ของ assistant (process แยกต่างหาก)

Different bot tokens

แต่ละ profile มีไฟล์ .env ของตัวเอง กำหนดค่า Telegram/Discord/Slack bot token ที่แตกต่างกันในแต่ละ profile:

# แก้ไข tokens ของ coder
nano ~/.hermes/profiles/coder/.env

# แก้ไข tokens ของ assistant
nano ~/.hermes/profiles/assistant/.env

Safety: token locks

หากสอง profile ใช้ bot token เดียวกันโดยไม่ได้ตั้งใจ gateway ตัวที่สองจะถูกบล็อกพร้อมข้อผิดพลาดที่ระบุ profile ที่ขัดแย้งกัน รองรับสำหรับ Telegram, Discord, Slack, WhatsApp, และ Signal

Persistent services

coder gateway install         # สร้าง service hermes-gateway-coder systemd/launchd
assistant gateway install     # สร้าง service hermes-gateway-assistant

แต่ละ profile จะได้ชื่อ service ของตัวเอง พวกมันทำงานอย่างอิสระ

การกำหนดค่า Profiles

แต่ละ profile มี:

  • config.yaml — model, provider, toolsets, การตั้งค่าทั้งหมด
  • .env — API keys, bot tokens
  • SOUL.md — บุคลิกภาพและคำแนะนำ
coder config set model.model anthropic/claude-sonnet-4
echo "You are a focused coding assistant." > ~/.hermes/profiles/coder/SOUL.md

หากคุณต้องการให้ profile นี้ทำงานในโปรเจกต์ที่เฉพาะเจาะจงเป็นค่าเริ่มต้น ให้ตั้งค่า terminal.cwd ของมันด้วย:

coder config set terminal.cwd /absolute/path/to/project

การอัปเดต

hermes update จะดึงโค้ดเพียงครั้งเดียว (ใช้ร่วมกัน) และซิงค์ bundled skills ใหม่ไปยัง ทุก profile โดยอัตโนมัติ:

hermes update
# → Code updated (12 commits)
# → Skills synced: default (up to date), coder (+2 new), assistant (+2 new)

skills ที่ผู้ใช้แก้ไขจะไม่ถูกเขียนทับ

การจัดการ Profiles

hermes profile list           # แสดง profile ทั้งหมดพร้อมสถานะ
hermes profile show coder     # ข้อมูลโดยละเอียดสำหรับ profile หนึ่ง
hermes profile rename coder dev-bot   # เปลี่ยนชื่อ (อัปเดต alias + service)
hermes profile export coder   # export เป็น coder.tar.gz
hermes profile import coder.tar.gz   # import จาก archive

การลบ Profile

hermes profile delete coder

สิ่งนี้จะหยุด gateway, ลบ service systemd/launchd, ลบ command alias, และลบข้อมูล profile ทั้งหมด คุณจะถูกถามให้พิมพ์ชื่อ profile เพื่อยืนยัน

ใช้ --yes เพื่อข้ามการยืนยัน: hermes profile delete coder --yes

:::note คุณไม่สามารถลบ default profile (~/.hermes) ได้ หากต้องการลบทุกอย่าง ให้ใช้ hermes uninstall :::

Tab completion

# Bash
eval "$(hermes completion bash)"

# Zsh
eval "$(hermes completion zsh)"

เพิ่มบรรทัดนี้ใน ~/.bashrc หรือ ~/.zshrc เพื่อให้ completion ทำงานอย่างถาวร จะช่วยเติมชื่อ profile หลัง -p, subcommand ของ profile, และคำสั่งระดับบนสุด

วิธีการทำงาน

Profiles ใช้ environment variable HERMES_HOME เมื่อคุณรัน coder chat, wrapper script จะตั้งค่า HERMES_HOME=~/.hermes/profiles/coder ก่อนที่จะ launch hermes เนื่องจากไฟล์ 119+ ใน codebase จะ resolve paths ผ่าน get_hermes_home(), state ของ Hermes จึงถูกจำกัดขอบเขตไปยัง directory ของ profile โดยอัตโนมัติ — config, sessions, memory, skills, state database, gateway PID, logs, และ cron jobs

สิ่งนี้แยกจาก terminal working directory การรัน tool จะเริ่มจาก terminal.cwd (หรือ launch directory เมื่อ cwd: "." บน local backend) ไม่ใช่จาก HERMES_HOME โดยอัตโนมัติ

default profile คือ ~/.hermes เอง ไม่จำเป็นต้องย้ายข้อมูล — การติดตั้งที่มีอยู่ทำงานได้เหมือนกันทุกประการ


extent analysis

TL;DR

The issue is not clearly described, so a specific fix or workaround cannot be provided, but a general approach to troubleshooting can be suggested.

Guidance

  1. Check the documentation: Review the provided documentation to ensure that all configurations and commands are correctly set up.
  2. Verify environment variables: Confirm that environment variables such as HERMES_HOME and HERMES_TUI are properly set.
  3. Test with a minimal setup: Try to reproduce the issue with a minimal setup to isolate the problem.
  4. Check for conflicts: If using profiles, ensure there are no conflicts between them, especially regarding API keys and bot tokens.

Example

No specific code example can be provided without a clear description of the issue.

Notes

Without more information about the issue, it's challenging to provide a precise solution. If you're experiencing problems with Hermes, ensure you've followed the setup and configuration instructions carefully.

Recommendation

Apply a systematic troubleshooting approach to identify and resolve the issue, starting with verifying the setup and configuration.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING