H繁中版
文件參考手冊profile commands
<!-- Source: https://hermesbible.com/docs/reference/profile-commands -->

Profile Commands Reference

本頁面涵蓋所有與 Hermes profiles 相關的命令。一般 CLI 命令請參見 CLI Commands Reference

hermes profile

hermes profile <subcommand>

管理 profiles 的頂層命令。不加子命令執行 hermes profile 會顯示說明。

子命令描述
list列出所有 profiles。
use設定活躍(預設)profile。
create建立新 profile。
describe讀取或設定 profile 的描述(供 kanban orchestrator 用於路由)。
delete刪除 profile。
show顯示 profile 的詳細資訊。
alias重新產生 profile 的 shell 別名。
rename重新命名 profile。
export將 profile 匯出為 tar.gz 壓縮檔。
import從 tar.gz 壓縮檔匯入 profile。
install從 git URL 或本機目錄安裝 profile distribution。參見 Profile Distributions
update重新拉取 distribution 管理的 profile 並重新套用其 bundle。
info顯示 profile 的 distribution 中繼資料(來源 URL、commit、上次更新時間)。

hermes profile list

hermes profile list

列出所有 profiles。當前活躍的 profile 以 * 標記。

範例:

$ hermes profile list
  default
* work
  dev
  personal

無選項。

hermes profile use

hermes profile use <name>

<name> 設為活躍 profile。所有後續的 hermes 命令(不加 -p)都會使用此 profile。

參數描述
<name>要啟用的 profile 名稱。使用 default 可返回基礎 profile。

範例:

hermes profile use work
hermes profile use default

hermes profile create

hermes profile create <name> [options]

建立新 profile。

參數 / 選項描述
<name>新 profile 的名稱。必須是有效的目錄名稱(字母數字、連字號、底線)。
--clone從當前 profile 複製 config.yaml.envSOUL.md 和 skills。
--clone-all從當前 profile 複製所有內容(config、memories、skills、cron、plugins)。不包含逐 profile 的歷史:sessions、state.db、 backups、state-snapshots、checkpoints。
--clone-from <profile>從特定 profile(而非當前的)複製 config/skills/SOUL。除非搭配 --clone-all,否則隱含 --clone
--no-alias跳過 wrapper 腳本的建立。
--description "<text>"一到兩句描述此 profile 的用途。供 kanban orchestrator 根據角色(而非僅凭 profile 名稱)路由任務。可跳過並稍後透過 hermes profile describe 新增。持久化在 <profile_dir>/profile.yaml 中。
--no-skills建立一個空的 profile,不啟用任何內建 skills。在 profile 中寫入 .no-bundled-skills 標記,以便未來的 hermes update 不會重新植入內建 skills,且不允許與 --clone--clone-from--clone-all 結合使用(這些仍會複製 skills)。適用於需要精簡 orchestrator profiles 或不應繼承完整 skill 目錄的沙箱 profiles。若要在已建立的 profile(包括預設的 ~/.hermes)上切換此設定,使用 hermes skills opt-out / hermes skills opt-in

建立 profile 不會將該 profile 目錄設為終端機命令的預設專案/工作目錄。若要讓 profile 從特定專案開始,在該 profile 的 config.yaml 中設定 terminal.cwd

範例:

# 空白 profile — 需要完整設定
hermes profile create mybot

# 從當前 profile 複製 config
hermes profile create work --clone

# 從當前 profile 複製所有內容
hermes profile create backup --clone-all

# 從特定 profile 複製 config
hermes profile create work2 --clone-from work

# 從特定 profile 複製所有內容
hermes profile create work2-backup --clone-from work --clone-all

hermes profile describe

hermes profile describe [<name>] [options]

讀取或設定 profile 的描述。描述供 kanban orchestrator 用於根據每個 profile 的專長路由任務,而非僅凭 profile 名稱猜測。持久化在 <profile_dir>/profile.yaml 中,因此重啟後仍會保留,且可與 gateway 共享。

不加任何標誌時,顯示當前描述(若為空則顯示 (no description set for '<name>'))。

參數 / 選項描述
<name>要描述的 profile。除非使用 --all --auto,否則必填。
--text "<text>"將描述設為此精確文字(使用者撰寫)。覆蓋任何現有描述。
--auto透過輔助 LLM 自動產生 1-2 句描述,基於 profile 的已安裝 skills、設定的模型和名稱。在 config.yamlauxiliary.profile_describer 下設定模型。自動產生的描述會標記 description_auto: true,以便儀表板標記需要審核。
--overwrite搭配 --auto 使用時,也替換使用者撰寫的描述(預設:跳過已明確設定描述的 profiles)。
--all搭配 --auto 使用時,掃描所有缺少描述的 profiles。

範例:

# 讀取當前描述
hermes profile describe researcher

# 明確設定
hermes profile describe researcher --text "Reads source code and writes findings."

# 讓 LLM 自動產生
hermes profile describe researcher --auto

# 為所有缺少描述的 profiles 填入描述
hermes profile describe --all --auto

hermes profile delete

hermes profile delete <name> [options]

刪除 profile 並移除其 shell 別名。

參數 / 選項描述
<name>要刪除的 profile。
--yes-y跳過確認提示。

範例:

hermes profile delete mybot
hermes profile delete mybot --yes

WARNING

這會永久刪除 profile 的完整目錄,包含所有設定、記憶、sessions 和 skills。無法刪除當前活躍的 profile。

hermes profile show

hermes profile show <name>

顯示 profile 的詳細資訊,包括其主目錄、設定的模型、gateway 狀態、skills 數量和設定檔狀態。

這裡顯示的是 profile 的 Hermes 主目錄,而非終端機工作目錄。終端機命令從 terminal.cwd(或當 cwd: "." 時本地後端的啟動目錄)開始。

參數描述
<name>要檢視的 profile。

範例:

$ hermes profile show work
Profile: work
Path:    ~/.hermes/profiles/work
Model:   anthropic/claude-sonnet-4 (anthropic)
Gateway: stopped
Skills:  12
.env:    exists
SOUL.md: exists
Alias:   ~/.local/bin/work

hermes profile alias

hermes profile alias <name> [options]

重新產生位於 ~/.local/bin/<name> 的 shell 別名腳本。在別名被意外刪除或移動 Hermes 安裝後需要更新時很有用。

參數 / 選項描述
<name>要建立/更新別名的 profile。
--remove移除 wrapper 腳本而非建立。
--name <alias>自訂別名名稱(預設:profile 名稱)。

範例:

hermes profile alias work
# 建立/更新 ~/.local/bin/work

hermes profile alias work --name mywork
# 建立 ~/.local/bin/mywork

hermes profile alias work --remove
# 移除 wrapper 腳本

hermes profile rename

hermes profile rename <old-name> <new-name>

重新命名 profile。更新目錄和 shell 別名。

參數描述
<old-name>目前的 profile 名稱。
<new-name>新的 profile 名稱。

範例:

hermes profile rename mybot assistant
# ~/.hermes/profiles/mybot → ~/.hermes/profiles/assistant
# ~/.local/bin/mybot → ~/.local/bin/assistant

hermes profile export

hermes profile export <name> [options]

將 profile 匯出為壓縮的 tar.gz 壓縮檔。

參數 / 選項描述
<name>要匯出的 profile。
-o--output <path>輸出檔案路徑(預設:<name>.tar.gz)。

範例:

hermes profile export work
# 在當前目錄建立 work.tar.gz

hermes profile export work -o ./work-2026-03-29.tar.gz

hermes profile import

hermes profile import <archive> [options]

從 tar.gz 壓縮檔匯入 profile。

參數 / 選項描述
<archive>要匯入的 tar.gz 壓縮檔路徑。
--name <name>匯入 profile 的名稱(預設:從壓縮檔推斷)。

範例:

hermes profile import ./work-2026-03-29.tar.gz
# 從壓縮檔推斷 profile 名稱

hermes profile import ./work-2026-03-29.tar.gz --name work-restored

Distribution commands

TIP

不熟悉 distributions? 請先閱讀 Profile Distributions 使用指南 — 它涵蓋了原因、時機和方法,包含完整範例。以下各節是乾燥的 CLI 參考,適用於你已知道需要什麼的情況。

Distributions 將 profile 轉換為可分享、版本化的工件,以 git repository 的形式發布。接收者只需一個命令即可安裝 distribution,且之後可以原地更新而不影響其本地的記憶、sessions 或憑證。

auth.json.env 永遠不會成為 distribution 的一部分 — 它們保留在安裝者的機器上。

接收者的使用者資料(記憶、sessions、auth、對 .env 的自行編輯)在初始安裝和後續更新中都會始終保留。

INFO

hermes profile export / import 仍然是在本機備份和還原 profile 的正確命令。Distribution(install / update / info)是另一個概念:透過 git 分發 profile,以便其他人可以安裝它。

hermes profile install

hermes profile install <source> [--name <name>] [--alias] [--force] [--yes]

從 git URL 或本機目錄安裝 profile distribution。

選項描述
<source>Git URL(github.com/user/repohttps://...git@...ssh://git://)或包含 distribution.yaml 的本機目錄。
--name NAME覆蓋 manifest 中的 profile 名稱。
--alias同時建立 shell wrapper(例如 telemetryhermes -p telemetry)。
--force覆蓋同名的現有 profile。使用者資料仍會保留。
-y--yes跳過 manifest 預覽確認提示。

安裝程式會顯示 manifest、列出必要的環境變數,並在要求確認前警告排程任務。必要的環境變數會放入 .env.EXAMPLE 檔案,你需要複製為 .env 並填入。

範例:

# 從 GitHub repo 安裝(簡寫)
hermes profile install github.com/kyle/telemetry-distribution --alias

# 從完整 HTTPS git URL 安裝
hermes profile install https://github.com/kyle/telemetry-distribution.git

# 從 SSH 安裝
hermes profile install git@github.com:kyle/telemetry-distribution.git

# 開發期間從本機目錄安裝
hermes profile install ./telemetry/

hermes profile update

hermes profile update <name> [--force-config] [--yes]

從記錄的來源重新 clone distribution 並套用更新。Distribution 擁有的檔案(SOUL.md、skills/、cron/、mcp.json)會被覆蓋;使用者資料(記憶、sessions、auth、.env)永遠不會被觸碰。

config.yaml 預設會保留以維持你的本機覆寫。加上 --force-config 可將其重設為 distribution 隨附的設定。

hermes profile info

hermes profile info <name>

顯示 profile 的 distribution manifest — 名稱、版本、所需的 Hermes 版本、作者、環境變數需求、來源 URL/路徑,以及記錄 distribution 最後一次 installupdate 時的 Installed: 時間戳記。在安裝共享 profile 前檢查其需求,以及偵測「此 profile 是 6 個月前安裝的且從未更新」都很有用。

hermes profile list 也會在 Distribution 欄位中顯示 distribution 名稱和版本,hermes profile show <name> / delete <name> 會顯示來源 URL,讓你一眼就能分辨哪些 profiles 來自 git repo、哪些是本機建立的。

Private distributions

私人 git repository 可直接作為 distribution 來源使用,無需額外設定 — 安裝程式會呼叫你一般的 git 程式,因此你 shell 已設定的任何驗證方式(SSH 金鑰、git credential helper、GitHub CLI 儲存的 HTTPS 憑證)都會透明套用。

# 使用你的 SSH 金鑰,與其他任何 `git clone` 相同
hermes profile install git@github.com:your-org/internal-assistant.git

# 使用你的 git credential helper
hermes profile install https://github.com/your-org/internal-assistant.git

如果在安裝期間 clone 提示你在終端機中互動式輸入憑證,該提示會直接傳遞。先設定好你通常用來 git clone 同一 repo 的驗證方式,然後再安裝。

Distribution manifest(distribution.yaml

每個 distribution 在其 repository 根目錄都有一個 distribution.yaml

name: telemetry
version: 0.1.0
description: "Compliance monitoring harness"
hermes_requires: ">=0.12.0"
author: "Your Name"
license: "MIT"
env_requires:
  - name: OPENAI_API_KEY
    description: "OpenAI API key"
    required: true
  - name: GRAPHITI_MCP_URL
    description: "Memory graph URL"
    required: false
    default: "http://127.0.0.1:8000/sse"
distribution_owned:   # 可選;預設為 SOUL.md、config.yaml、
                      #   mcp.json、skills/、cron/、distribution.yaml
  - SOUL.md
  - skills/compliance/
  - cron/

hermes_requires 支援 >=<===!=><,或裸版本(視為 >=)。如果當前 Hermes 版本不符合規範,安裝會失敗並顯示明確的錯誤。

distribution_owned 為可選。若設定,更新時只有這些路徑會被替換;profile 中的其他內容保持使用者擁有。若省略,則使用上述預設值。

Publishing a distribution

撰寫 distribution 只是 git push:

  1. 在你的 profile 目錄中建立 distribution.yaml,至少包含 nameversion
  2. 初始化 git repo(或使用現有的)並推送到 GitHub / GitLab / 任何 Hermes 可以 clone 的主機。
  3. 告訴接收者執行 hermes profile install <your-repo-url>

使用 git 標籤進行版本化發布 — clone HEAD 的接收者會取得你的最新狀態,你也可以隨時在 manifest 中增加 version:

hermes -p / hermes --profile

hermes -p <name> <command> [options]
hermes --profile <name> <command> [options]

全域標誌,可在不改變固定預設的情況下以特定 profile 執行任何 Hermes 命令。這會在命令持續期間覆蓋活躍 profile。

選項描述
-p <name>--profile <name>此命令使用的 profile。

範例:

hermes -p work chat -q "Check the server status"
hermes --profile dev gateway start
hermes -p personal skills list
hermes -p work config edit

hermes completion

hermes completion <shell>

產生 shell 自動完成腳本。包含 profile 名稱和 profile 子命令的完成。

參數描述
<shell>要產生完成的 shell:bashzshfish

範例:

# 安裝完成
hermes completion bash >> ~/.bashrc
hermes completion zsh >> ~/.zshrc
hermes completion fish > ~/.config/fish/completions/hermes.fish

# 重新載入 shell
source ~/.bashrc

安裝後,Tab 補全適用於:

  • hermes profile <TAB> — 子命令(list、use、create 等)
  • hermes profile use <TAB> — profile 名稱
  • hermes -p <TAB> — profile 名稱

參見



Environment Variables