From claude-hermes
View or modify heartbeat daemon settings. Supports subcommands to toggle heartbeat, change interval, update prompt, and configure Telegram forwarding.
How this command is triggered — by the user, by Claude, or both
Slash command
/claude-hermes:configThe summary Claude sees in its command listing — used to decide when to auto-load this command
View or modify the heartbeat daemon settings. Use `$ARGUMENTS` to determine the action. Parse `$ARGUMENTS` to identify what the user wants. If no arguments are given, show the current config. ## Sub-commands ### `show` (default when no arguments) 1. Read `.claude/hermes/settings.json`. 2. Display all settings clearly: **General** - Model: (e.g. `opus`, `sonnet`, `haiku`, `glm` or "default") - API token: (first 5 chars + "..." or "not configured"; used when `model` is `glm`) - Fallback model: (e.g. `glm`, `sonnet`, or "not configured") - Fallback API token: (first 5 chars...
View or modify the heartbeat daemon settings. Use $ARGUMENTS to determine the action.
Parse $ARGUMENTS to identify what the user wants. If no arguments are given, show the current config.
show (default when no arguments)Read .claude/hermes/settings.json.
Display all settings clearly:
General
opus, sonnet, haiku, glm or "default")model is glm)glm, sonnet, or "not configured")America/New_York or "UTC")Heartbeat
HEARTBEAT_OK is forwarded only when enabled)Telegram
Security
Also list any cron jobs from .claude/hermes/jobs/ with their name and schedule.
Remind the user that changes are hot-reloaded every 30s — no daemon restart needed.
heartbeat on / heartbeat off / heartbeat enable / heartbeat disableToggle the heartbeat on or off.
.claude/hermes/settings.json.heartbeat.enabled to true or false based on the command.heartbeat interval <minutes> / interval <minutes>Change the heartbeat interval.
$ARGUMENTS. If not provided or invalid, use AskUserQuestion: "How often should the heartbeat run?" (header: "Interval", options: "5 minutes", "15 minutes (Recommended)", "30 minutes", "60 minutes").claude/hermes/settings.json.heartbeat.interval to the new value.heartbeat prompt / promptChange the heartbeat prompt.
.claude/hermes/settings.json and show the current prompt.heartbeat.prompt to the new value.heartbeat telegram on / heartbeat telegram off / heartbeat forward telegram on / heartbeat forward telegram offToggle whether heartbeat outputs are forwarded to Telegram.
.claude/hermes/settings.json.heartbeat.forwardToTelegram to true for on and false for off.true = forward all heartbeat replies (including HEARTBEAT_OK)false = suppress HEARTBEAT_OK and forward only actionable heartbeat outputstelegram token <token> / telegram tokenSet or update the Telegram bot token.
$ARGUMENTS, use it directly..claude/hermes/settings.json.telegram.token to the new value.telegram users <id1,id2,...> / telegram usersSet the allowed Telegram user IDs.
$ARGUMENTS, parse them as comma-separated numbers..claude/hermes/settings.json.telegram.allowedUserIds to the array of numbers.telegram off / telegram disableDisable Telegram integration.
.claude/hermes/settings.json.telegram.token to "" and telegram.allowedUserIds to [].model <name> / modelSet the Claude model to use for sessions.
$ARGUMENTS, use it directly..claude/hermes/settings.json.model to the new value.glm, ask for api token (unless already set) and save it to top-level api.glm, keep api unchanged.api <token> / apiSet or update the API token used when model is glm.
$ARGUMENTS, use it directly..claude/hermes/settings.json.api to the new value.fallback model <name> / fallback modelSet the fallback model used when the primary model hits a rate limit.
$ARGUMENTS, use it directly..claude/hermes/settings.json.fallback.model to the chosen value ("" for none).fallback api <token> / fallback apiSet or clear the API token for the fallback model.
$ARGUMENTS, use it directly..claude/hermes/settings.json.fallback.api to the new value.timezone <tz> / timezoneSet the IANA timezone (e.g. America/New_York, Europe/London, UTC).
$ARGUMENTS, use it directly..claude/hermes/settings.json.timezone to the new value. The timezoneOffsetMinutes will be auto-resolved from the timezone name.security level <level> / securitySet the security level for Claude sessions.
$ARGUMENTS, validate it is one of: locked, strict, moderate, unrestricted..claude/hermes/settings.json.security.level to the new value.security tools allow <tool1,tool2,...> / security tools disallow <tool1,tool2,...>Add tools to the allowed or disallowed lists.
$ARGUMENTS..claude/hermes/settings.json.security.allowedTools or security.disallowedTools (deduplicated).resetReset all settings to defaults.
{
"model": "",
"api": "",
"fallback": {
"model": "",
"api": ""
},
"timezone": "UTC",
"timezoneOffsetMinutes": 0,
"heartbeat": {
"enabled": false,
"interval": 15,
"prompt": "",
"excludeWindows": [],
"forwardToTelegram": true
},
"telegram": {
"token": "",
"allowedUserIds": []
},
"security": {
"level": "moderate",
"allowedTools": [],
"disallowedTools": []
}
}
/claude-hermes:jobs delete for that.Location: .claude/hermes/settings.json
{
"model": "opus",
"api": "",
"fallback": {
"model": "glm",
"api": ""
},
"timezone": "America/New_York",
"timezoneOffsetMinutes": -300,
"heartbeat": {
"enabled": true,
"interval": 15,
"prompt": "Remind me to drink water and stretch.",
"excludeWindows": [
{ "days": [0, 6], "start": "23:00", "end": "07:00" }
],
"forwardToTelegram": true
},
"telegram": {
"token": "123456:ABC-DEF...",
"allowedUserIds": [123456789]
},
"security": {
"level": "moderate",
"allowedTools": [],
"disallowedTools": []
}
}
| Key | Type | Description |
|---|---|---|
model | string | Claude model (opus, sonnet, haiku, glm, or full ID). Empty = default |
api | string | API token used when model is glm (mapped to ANTHROPIC_AUTH_TOKEN) |
fallback.model | string | Backup model used automatically if primary run returns rate-limit text (recommend glm for provider diversity) |
fallback.api | string | API token used with fallback.model (optional) |
timezone | string | IANA timezone name (e.g. America/New_York) |
timezoneOffsetMinutes | number | UTC offset in minutes (auto-resolved from timezone) |
heartbeat.enabled | boolean | Whether the recurring heartbeat runs |
heartbeat.interval | number | Minutes between heartbeat executions |
heartbeat.prompt | string | Prompt sent to Claude on each heartbeat |
heartbeat.excludeWindows | object[] | Quiet windows where heartbeat is skipped |
heartbeat.excludeWindows[].days | number[] | Days of week (0=Sun..6=Sat); omit for all days |
heartbeat.excludeWindows[].start | string | Window start time in HH:MM 24h format |
heartbeat.excludeWindows[].end | string | Window end time in HH:MM 24h format |
heartbeat.forwardToTelegram | boolean | Forward heartbeat output to Telegram (false suppresses HEARTBEAT_OK) |
telegram.token | string | Bot token from @BotFather |
telegram.allowedUserIds | number[] | Telegram user IDs allowed to interact |
security.level | string | locked | strict | moderate | unrestricted |
security.allowedTools | string[] | Extra tools to allow |
security.disallowedTools | string[] | Tools to block |
The daemon hot-reloads this file every 30 seconds. No restart needed after changes.
npx claudepluginhub sypsyp97/claude-hermes/configViews or modifies heartbeat daemon settings including interval, prompt, and Telegram forwarding. Also supports subcommands for toggling and configuring the heartbeat.
/startStarts the ClaudeClaw heartbeat daemon with interactive setup and security checks for Telegram, Discord, and permissions.
/telegram-setupInteractive setup for Telegram notification bridge — creates a bot, detects chat ID, and writes configuration. Supports optional Whisper transcription via OpenAI API.
/settingsInteractive configuration wizard for Claude Code notification sounds. Detects system, previews audio, and allows the user to select and assign distinct sounds for Task, Review, Question, and Plan events, set volume, choose audio device, and configure webhooks.
/cc-channelsBootstraps Claude Code channel integrations: generates starter servers for CI webhooks, mobile/Telegram, Discord bridges; writes .mcp.json config, pairing instructions, allowlists. Also supports list, status, security, pair, test.
/configConfigures GSD settings interactively — common toggles by default, or advanced knobs, integrations, and model profiles via flags.