Справочник команд профилей
На этой странице описаны все команды, связанные с профилями Hermes. Общие команды CLI смотрите в Справочнике команд CLI.
hermes profile
hermes profile <subcommand>
Верхнеуровневая команда для управления профилями. Запуск hermes profile без подкоманды выводит справку.
| Подкоманда | Описание |
|---|---|
list | Вывести список всех профилей. |
use | Установить активный (основной) профиль. |
create | Создать новый профиль. |
describe | Прочитать или задать описание профиля (используется оркестратором kanban для маршрутизации). |
delete | Удалить профиль. |
show | Показать сведения о профиле. |
alias | Перегенерировать shell-алиас профиля. |
rename | Переименовать профиль. |
export | Экспортировать профиль в архив tar.gz. |
import | Импортировать профиль из архива tar.gz. |
install | Установить дистрибутив профиля из git-URL или локальной директории. См. Дистрибутивы профилей. |
update | Повторно загрузить профиль, управляемый дистрибутивом, и переприменить его бандл. |
info | Показать метаданные дистрибутива профиля (URL источника, коммит, дата последнего обновления). |
hermes profile list
hermes profile list
Выводит список всех профилей. Текущий активный профиль отмечен символом *.
Пример:
$ hermes profile list
default
* work
dev
personal
Нет опций.
hermes profile use
hermes profile use <name>
Устанавливает <name> в качестве активного профиля. Все последующие команды hermes (без -p) будут использовать этот профиль.
| Аргумент | Описание |
|---|---|
<name> | Имя профиля для активации. Используйте default для возврата к базовому профилю. |
Пример:
hermes profile use work
hermes profile use default
hermes profile create
hermes profile create <name> [options]
Создаёт новый профиль.
| Аргумент / Опция | Описание |
|---|---|
<name> | Имя нового профиля. Должно быть допустимым именем директории (буквы, цифры, дефисы, знаки подчёркивания). |
--clone | Скопировать config.yaml, .env, SOUL.md и навыки из текущего профиля. |
--clone-all | Скопировать всё (конфиг, воспоминания, навыки, cron, плагины) из текущего профиля. Исключает поисторичные данные: сессии, state.db, резервные копии, снимки состояния, чекпоинты. |
--clone-from <profile> | Клонировать конфиг/навыки/SOUL из конкретного профиля вместо текущего. Подразумевает --clone, если не сочетается с --clone-all. |
--no-alias | Пропустить создание wrapper-скрипта. |
--description "<text>" | Описание профиля из одного-двух предложений — чем хорош этот профиль. Используется оркестратором kanban для маршрутизации задач по роли, а не только по имени профиля. Можно добавить позже через hermes profile describe. Сохраняется в <profile_dir>/profile.yaml. |
--no-skills | Создать пустой профиль без включённых встроенных навыков. Записывает маркер .no-bundled-skills в профиль, чтобы будущие запуски hermes update не пересевали встроенный набор; несовместимо с --clone, --clone-from или --clone-all (которые всё равно скопируют навыки). Полезно для узких профилей-оркестраторов или sandbox-профилей, которые не должны наследовать полный каталог навыков. Для переключения этой настройки на уже созданном профиле (включая ~/.hermes по умолчанию) используйте hermes skills opt-out / hermes skills opt-in. |
Создание профиля не делает директорию этого профиля рабочей директорией по умолчанию для терминальных команд. Чтобы профиль стартовал в конкретном проекте, задайте terminal.cwd в config.yaml этого профиля.
Примеры:
# Пустой профиль — требует полной настройки
hermes profile create mybot
# Клонировать только конфиг из текущего профиля
hermes profile create work --clone
# Клонировать всё из текущего профиля
hermes profile create backup --clone-all
# Клонировать конфиг из конкретного профиля
hermes profile create work2 --clone-from work
# Клонировать всё из конкретного профиля
hermes profile create work2-backup --clone-from work --clone-all
hermes profile describe
hermes profile describe [<name>] [options]
Читает или устанавливает описание профиля. Описание потребляется оркестратором kanban для маршрутизации задач по специализации каждого профиля, а не по одному лишь имени. Сохраняется в <profile_dir>/profile.yaml, переживает перезагрузки и передаётся шлюзу.
Без флагов выводит текущее описание (или (no description set for '<name>'), если оно не задано).
| Аргумент / Опция | Описание |
|---|---|
<name> | Профиль для описания. Обязателен, если не используется --all --auto. |
--text "<text>" | Установить описание точно этим текстом (пользовательское). Перезаписывает существующее. |
--auto | Автоматически сгенерировать описание из 1–2 предложений через вспомогательный LLM на основе установленных навыков, настроенной модели и имени профиля. Настройте модель в auxiliary.profile_describer в config.yaml. Автосгенерированные описания помечаются description_auto: true, чтобы дашборд мог выделить их для проверки. |
--overwrite | С --auto: заменять также пользовательские описания (по умолчанию: пропускать профили с явно заданным описанием). |
--all | С --auto: обойти все профили без описания. |
Примеры:
# Прочитать текущее описание
hermes profile describe researcher
# Задать явно
hermes profile describe researcher --text "Читает исходный код и записывает выводы."
# Сгенерировать через LLM
hermes profile describe researcher --auto
# Заполнить описания для всех профилей без них
hermes profile describe --all --auto
hermes profile delete
hermes profile delete <name> [options]
Удаляет профиль и его shell-алиас.
| Аргумент / Опция | Описание |
|---|---|
<name> | Профиль для удаления. |
--yes, -y | Пропустить запрос подтверждения. |
Пример:
hermes profile delete mybot
hermes profile delete mybot --yes
Команда безвозвратно удаляет всю директорию профиля, включая конфиг, воспоминания, сессии и навыки. Невозможно удалить текущий активный профиль.
hermes profile show
hermes profile show <name>
Выводит сведения о профиле: домашнюю директорию, настроенную модель, статус шлюза, количество навыков и статус файлов конфигурации.
Показывает домашнюю директорию Hermes профиля, а не рабочую директорию терминала. Терминальные команды стартуют из terminal.cwd (или директории запуска на локальном бэкенде, если задано cwd: ".").
| Аргумент | Описание |
|---|---|
<name> | Профиль для просмотра. |
Пример:
$ 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]
Перегенерирует shell-алиас по пути ~/.local/bin/<name>. Полезно, если алиас был случайно удалён или нужно обновить его после переноса установки Hermes.
| Аргумент / Опция | Описание |
|---|---|
<name> | Профиль, для которого создаётся/обновляется алиас. |
--remove | Удалить wrapper-скрипт вместо создания. |
--name <alias> | Пользовательское имя алиаса (по умолчанию: имя профиля). |
Пример:
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>
Переименовывает профиль. Обновляет директорию и shell-алиас.
| Аргумент | Описание |
|---|---|
<old-name> | Текущее имя профиля. |
<new-name> | Новое имя профиля. |
Пример:
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]
Экспортирует профиль в сжатый архив tar.gz.
| Аргумент / Опция | Описание |
|---|---|
<name> | Профиль для экспорта. |
-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.
| Аргумент / Опция | Описание |
|---|---|
<archive> | Путь к архиву tar.gz для импорта. |
--name <name> | Имя для импортированного профиля (по умолчанию: определяется из архива). |
Пример:
hermes profile import ./work-2026-03-29.tar.gz
# Определяет имя профиля из архива
hermes profile import ./work-2026-03-29.tar.gz --name work-restored
Команды дистрибутивов
Впервые работаете с дистрибутивами? Начните с руководства по дистрибутивам профилей — там объясняется зачем, когда и как их использовать, с полными примерами. Разделы ниже — сухой CLI-справочник для тех, кто уже знает что нужно.
Дистрибутивы превращают профиль в версионируемый артефакт для совместного использования, публикуемый как git-репозиторий. Получатель устанавливает дистрибутив одной командой и может обновлять его на месте, не затрагивая свои локальные воспоминания, сессии или учётные данные.
auth.json и .env никогда не входят в дистрибутив — они остаются на машине устанавливающего пользователя.
Пользовательские данные получателя (воспоминания, сессии, аутентификация, его правки .env) всегда сохраняются при первоначальной установке и последующих обновлениях.
hermes profile export / import по-прежнему правильные команды для локального резервного копирования и восстановления профиля на собственной машине. Дистрибутивы (install / update / info) — отдельная концепция: распространение профиля через git, чтобы кто-то другой мог его установить.
hermes profile install
hermes profile install <source> [--name <name>] [--alias] [--force] [--yes]
Устанавливает дистрибутив профиля из git-URL или локальной директории.
| Опция | Описание |
|---|---|
<source> | Git-URL (github.com/user/repo, https://..., git@..., ssh://, git://) или локальная директория с distribution.yaml в корне. |
--name NAME | Переопределить имя профиля из манифеста. |
--alias | Также создать shell-обёртку (например, telemetry → hermes -p telemetry). |
--force | Перезаписать существующий профиль с тем же именем. Пользовательские данные при этом сохраняются. |
-y, --yes | Пропустить запрос подтверждения после просмотра манифеста. |
Установщик показывает манифест, перечисляет обязательные переменные окружения и предупреждает о cron-заданиях перед запросом подтверждения. Обязательные переменные окружения помещаются в файл .env.EXAMPLE, который нужно скопировать в .env и заполнить.
Примеры:
# Установить из репозитория GitHub (сокращённая форма)
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]
Повторно клонирует дистрибутив из записанного источника и применяет обновления. Файлы, принадлежащие дистрибутиву (SOUL.md, skills/, cron/, mcp.json), перезаписываются; пользовательские данные (воспоминания, сессии, аутентификация, .env) не затрагиваются.
config.yaml по умолчанию сохраняется, чтобы не потерять локальные переопределения. Передайте --force-config, чтобы сбросить его до конфигурации, поставляемой дистрибутивом.
hermes profile info
hermes profile info <name>
Выводит манифест дистрибутива профиля — имя, версию, требуемую версию Hermes, автора, требования к переменным окружения, URL/путь источника и временную метку Installed:, записанную при последней операции install или update. Полезно для проверки требований совместно используемого профиля перед установкой, а также для обнаружения ситуаций «этот профиль был установлен 6 месяцев назад и не обновлялся».
hermes profile list также отображает имя и версию дистрибутива в колонке Distribution, а hermes profile show <name> / delete <name> показывают URL источника — так можно сразу понять, какие профили пришли из git-репозитория, а какие созданы локально.
Приватные дистрибутивы
Приватный git-репозиторий работает как источник дистрибутива без дополнительной настройки — установщик вызывает стандартный бинарник git, поэтому любая аутентификация, уже настроенная в вашем шелле (SSH-ключ, хелпер git credential, сохранённые HTTPS-учётные данные GitHub CLI), применяется прозрачно.
# Использует ваш 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 для того же репозитория, а затем устанавливайте.
Манифест дистрибутива (distribution.yaml)
В корне каждого дистрибутива находится файл 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 — опционально. Если задано, при обновлении заменяются только эти пути; всё остальное в профиле остаётся в собственности пользователя. Если не задано, применяются описанные выше значения по умолчанию.
Публикация дистрибутива
Создание дистрибутива — это просто git push:
- В директории профиля создайте
distribution.yamlс минимально необходимымиnameиversion. - Инициализируйте git-репозиторий (или используйте существующий) и запушьте на GitHub / GitLab / любой хост, доступный для клонирования Hermes.
- Сообщите получателям запустить
hermes profile install <your-repo-url>.
Используйте git-теги для версионированных релизов — получатели, клонирующие HEAD, получают последнее состояние, а поднять version: в манифесте можно в любое время.
hermes -p / hermes --profile
hermes -p <name> <command> [options]
hermes --profile <name> <command> [options]
Глобальный флаг для запуска любой команды Hermes под конкретным профилем без изменения постоянного умолчания. Переопределяет активный профиль на время выполнения команды.
| Опция | Описание |
|---|---|
-p <name>, --profile <name> | Профиль для использования в этой команде. |
Примеры:
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> | Шелл для генерации автодополнения: bash, zsh или fish. |
Примеры:
# Установить автодополнения
hermes completion bash >> ~/.bashrc
hermes completion zsh >> ~/.zshrc
hermes completion fish > ~/.config/fish/completions/hermes.fish
# Перезагрузить шелл
source ~/.bashrc
После установки tab-автодополнение работает для:
hermes profile <TAB>— подкоманды (list, use, create и т.д.)hermes profile use <TAB>— имена профилейhermes -p <TAB>— имена профилей