docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal weave, sidebar reorg (#33782)
* docs(audit): correctness pass across getting-started, reference, features, messaging, developer-guide, guides, integrations, user-guide * docs: add PR coverage for last 30d + Nous Portal weave + nav reorg + build fixes - Add docs for top user-visible PRs that shipped without docs (api-server session control, kanban features, telegram pin/edit, provider client tag, xAI retired-model migration, cron name lookup, --branch update flag, etc.) - Apply Nous Portal weave across 23 pages (tasteful one-liners on getting-started/learning-path, configuration, overview, vision, x-search, credential-pools, provider-routing, cron, codex-runtime, profiles, docker, messaging/index, multiple guides, plus FAQ + index promotion) - Reorganize sidebar: split Messaging into Popular/M365/Chinese/Other, Reference into Command/Configuration/Tools-Skills sub-categories, add orphan developer-guide pages (web-search-provider-plugin, browser-supervisor), move features from Integrations back to Features, fold lone spotify into Media & Web. - Regenerate skill stubs + catalogs (kanban-codex-lane, hermes-s6-container- supervision, web-pentest) - Fix broken anchor links (security/cron, configuration/fallback, telegram large-files, adding-platform-adapters step-by-step)
This commit is contained in:
@@ -47,6 +47,9 @@ hermes [global-options] <command> [subcommand/options]
|
||||
| `hermes slack` | Slack helpers (currently: generate the app manifest with every command as a native slash). |
|
||||
| `hermes auth` | Manage credentials — add, list, remove, reset, set strategy. Handles OAuth flows for Codex/Nous/Anthropic. |
|
||||
| `hermes login` / `logout` | **Deprecated** — use `hermes auth` instead. |
|
||||
| `hermes send` | Send a one-shot message to a configured messaging platform (Telegram, Discord, Slack, Signal, SMS, …). Useful from shell scripts, cron jobs, CI hooks, and monitoring daemons — no agent loop, no LLM. |
|
||||
| `hermes secrets` | Manage external secret sources (currently Bitwarden Secrets Manager) for pulling API keys at process startup instead of from `~/.hermes/.env`. |
|
||||
| `hermes migrate` | Diagnose and (optionally) rewrite `config.yaml` to replace references to retired models or deprecated settings (e.g. `migrate xai`). |
|
||||
| `hermes status` | Show agent, auth, and platform status. |
|
||||
| `hermes cron` | Inspect and tick the cron scheduler. |
|
||||
| `hermes kanban` | Multi-profile collaboration board (tasks, links, dispatcher). |
|
||||
@@ -262,6 +265,8 @@ the full guide, supported languages, and configuration knobs.
|
||||
hermes setup [model|tts|terminal|gateway|tools|agent] [--non-interactive] [--reset] [--quick] [--reconfigure] [--portal]
|
||||
```
|
||||
|
||||
**Easiest path:** `hermes setup --portal` — OAuth into Nous Portal and opt into the [Tool Gateway](../user-guide/features/tool-gateway.md) in one shot.
|
||||
|
||||
**First run:** launches the first-time wizard.
|
||||
|
||||
**Returning user (already configured):** drops straight into the full reconfigure wizard — every prompt shows your current value as its default, press Enter to keep or type a new value. No menu.
|
||||
@@ -337,6 +342,122 @@ Run `hermes slack manifest --write` again after `hermes update` to pick
|
||||
up any new commands.
|
||||
|
||||
|
||||
## `hermes send`
|
||||
|
||||
```bash
|
||||
hermes send --to <target> "message text"
|
||||
hermes send --to <target> --file <path>
|
||||
echo "message" | hermes send --to <target>
|
||||
hermes send --list [platform]
|
||||
```
|
||||
|
||||
Send a one-shot message to a configured messaging platform without spinning up an agent or gateway loop. Reuses the gateway's already-configured credentials (`~/.hermes/.env` + `~/.hermes/config.yaml`) so ops scripts, cron jobs, CI hooks, and monitoring daemons can post status updates without reimplementing each platform's REST client.
|
||||
|
||||
For bot-token platforms (Telegram, Discord, Slack, Signal, SMS, WhatsApp-CloudAPI) no running gateway is required — `hermes send` talks directly to the platform's REST endpoint. Plugin platforms that need a persistent adapter still require a live gateway.
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `-t`, `--to <TARGET>` | Delivery target. Formats: `platform` (uses home channel), `platform:chat_id`, `platform:chat_id:thread_id`, or `platform:#channel-name`. Examples: `telegram`, `telegram:-1001234567890`, `discord:#ops`, `slack:C0123ABCD`, `signal:+15551234567`. |
|
||||
| `-f`, `--file <PATH>` | Read the message body from `PATH`. Pass `-` to force reading from stdin. |
|
||||
| `-s`, `--subject <LINE>` | Prepend a subject/header line before the message body. |
|
||||
| `-l`, `--list [platform]` | List configured targets across all platforms (or only the given platform). |
|
||||
| `-q`, `--quiet` | Suppress stdout on success — useful in scripts (rely on exit code only). |
|
||||
| `--json` | Emit raw JSON result instead of human-readable output. |
|
||||
|
||||
If neither a positional `message` argument nor `--file` is provided, `hermes send` reads from stdin when it is not a TTY. Exit codes: `0` on success, `1` on delivery/backend failure, `2` on usage errors.
|
||||
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
hermes send --to telegram "deploy finished"
|
||||
echo "RAM 92%" | hermes send --to telegram:-1001234567890
|
||||
hermes send --to discord:#ops --file /tmp/report.md
|
||||
hermes send --to slack:#eng --subject "[CI]" --file build.log
|
||||
hermes send --list # all platforms
|
||||
hermes send --list telegram # filter by platform
|
||||
```
|
||||
|
||||
|
||||
## `hermes secrets`
|
||||
|
||||
```bash
|
||||
hermes secrets bitwarden <subcommand>
|
||||
hermes secrets bw <subcommand> # short alias
|
||||
```
|
||||
|
||||
Pull API keys from an external secret manager at process startup instead of storing them in `~/.hermes/.env`. Currently supports **Bitwarden Secrets Manager**. See the full guide: [Bitwarden integration](../user-guide/secrets/bitwarden.md).
|
||||
|
||||
`bitwarden` (alias `bw`) subcommands:
|
||||
|
||||
| Subcommand | Description |
|
||||
|------------|-------------|
|
||||
| `setup` | Interactive wizard: install the pinned `bws` binary, store an access token, and pick a project. Accepts `--project-id`, `--access-token`, and `--server-url` for non-interactive use. |
|
||||
| `status` | Show current config, binary path/version, and last fetch info. |
|
||||
| `sync` | Fetch secrets now and report what changed. Add `--apply` to actually export the secrets into the current shell's environment (default is dry-run). |
|
||||
| `install` | Download and verify the pinned `bws` binary. `--force` re-downloads even if a managed copy already exists. |
|
||||
| `disable` | Turn off the Bitwarden integration. |
|
||||
|
||||
|
||||
## `hermes migrate`
|
||||
|
||||
```bash
|
||||
hermes migrate <type>
|
||||
```
|
||||
|
||||
Diagnose and (optionally) rewrite the active `config.yaml` to replace references to retired models or deprecated settings. A timestamped backup of the original `config.yaml` is taken before any rewrite (skip with `--no-backup`).
|
||||
|
||||
| Subcommand | Description |
|
||||
|------------|-------------|
|
||||
| `xai` | Scan `config.yaml` for references to xAI models scheduled for retirement on May 15, 2026 and (with `--apply`) rewrite them in-place to the official replacements per the xAI migration guide. Defaults to dry-run. |
|
||||
|
||||
Common flags for migration subcommands:
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `--apply` | Rewrite `config.yaml` in-place (default: dry-run, no writes). |
|
||||
| `--no-backup` | Skip the timestamped backup of `config.yaml` when applying. |
|
||||
|
||||
> Not to be confused with `hermes claw migrate` (one-shot import of OpenClaw configuration into Hermes) — `hermes migrate` is the top-level config-rewrite command.
|
||||
|
||||
|
||||
## `hermes proxy`
|
||||
|
||||
```bash
|
||||
hermes proxy <subcommand>
|
||||
```
|
||||
|
||||
Run a local OpenAI-compatible HTTP server that forwards requests to an OAuth-authenticated upstream provider (e.g. Nous Portal, xAI). External apps can point at the proxy with any bearer token; the proxy attaches your real OAuth credentials on the way out. See [Subscription Proxy](../user-guide/features/subscription-proxy.md) for the full guide.
|
||||
|
||||
| Subcommand | Description |
|
||||
|------------|-------------|
|
||||
| `start` | Run the proxy in the foreground. Flags: `--provider <nous\|xai>` (default `nous`), `--host <addr>` (default `127.0.0.1`; use `0.0.0.0` to expose on LAN), `--port <int>` (default `8645`). |
|
||||
| `status` | Show which proxy upstreams are ready (credentials present, OAuth valid). |
|
||||
| `providers` | List available proxy upstream providers. |
|
||||
|
||||
|
||||
## `hermes security`
|
||||
|
||||
```bash
|
||||
hermes security <subcommand>
|
||||
```
|
||||
|
||||
On-demand vulnerability scan against [OSV.dev](https://osv.dev). Covers the Hermes venv (installed PyPI distributions), Python dependencies declared by plugins under `~/.hermes/plugins/`, and pinned `npx`/`uvx` MCP servers in `config.yaml`. Does NOT scan globally-installed packages or editor/browser extensions.
|
||||
|
||||
| Subcommand | Description |
|
||||
|------------|-------------|
|
||||
| `audit` | Run a one-shot supply-chain audit. |
|
||||
|
||||
`audit` flags:
|
||||
|
||||
| Flag | Default | Description |
|
||||
|------|---------|-------------|
|
||||
| `--json` | off | Emit machine-readable JSON instead of human-readable text. |
|
||||
| `--fail-on <level>` | `critical` | Exit non-zero when any finding meets this severity (`low`, `moderate`, `high`, `critical`). |
|
||||
| `--skip-venv` | off | Skip scanning the Hermes Python venv. |
|
||||
| `--skip-plugins` | off | Skip scanning plugin requirements files. |
|
||||
| `--skip-mcp` | off | Skip scanning pinned MCP servers in `config.yaml`. |
|
||||
|
||||
|
||||
## `hermes login` / `hermes logout` *(Deprecated)*
|
||||
|
||||
:::caution
|
||||
@@ -1276,6 +1397,7 @@ Additional behavior:
|
||||
|---------|-------------|
|
||||
| `hermes version` | Print version information. |
|
||||
| `hermes update` | Pull latest changes and reinstall dependencies. |
|
||||
| `hermes postinstall` | Internal bootstrap. Runs once after `pip install hermes-agent` (or `hermes update` on pip installs) to install non-Python dependencies that pip cannot provide — Node.js runtime, headless browser, ripgrep, ffmpeg — and then trigger `hermes setup` if the profile has not been configured yet. Safe to re-run idempotently. |
|
||||
| `hermes uninstall [--full] [--yes]` | Remove Hermes, optionally deleting all config/data. |
|
||||
|
||||
## See also
|
||||
|
||||
Reference in New Issue
Block a user