Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@

Dated list of meaningful guide updates. Roughly [Keep a Changelog](https://keepachangelog.com) flavored.

## 2026-07-01 — Hermes v0.17.0 "Reach" + v0.18.0 "Judgment" Refresh

### Added
- **Part 26 — MoA, Verification & Self-Improvement**: the v0.18 "Judgment" stack. Mixture-of-Agents presets as first-class selectable models (`moa` provider, visible per-reference reasoning, streaming aggregator, `/moa` one-shots, trace persistence), evidence-based coding verification (`agent.coding_context`, `pre_verify`, verify-on-stop), **completion contracts** for `/goal` + `/goal wait <pid>`, `/learn` + `/journey` self-improvement, background subagent fan-out, everyday commands (`/prompt`, `/reasoning full`, `/timestamps`, in-place compaction, Blank Slate setup), and the team/fleet layer (scale-to-zero + drain coordination, managed scope from `/etc/hermes`, multiplexed gateway, Automation Blueprints, cron continuations). New `assets/moa-judgment.png` banner.
- Part 15: **iMessage via Photon Spectrum** (`hermes photon login`, no Mac required) as the recommended iMessage path, plus the official **WhatsApp Business Cloud API** adapter, the **Raft** agent-network channel, and Telegram rich messages (Bot API 10.1).
- Part 24: v0.17/v0.18 desktop coverage — first-class **Projects** (coding rail, review pane, worktrees), multi-terminal panel, memory graph, subagent watch-windows, VS Code Marketplace themes, native notifications, remote media relay.
- Part 9: **Google Vertex AI** provider, MoA-as-provider note, and Cursor **Composer** via xAI Grok OAuth.
- Part 8: `delegate_task(background=true)` and background fan-out patterns.
- Part 7: `memory` atomic batch operations, `/journey`, and the desktop memory graph.
- Part 22 section 9 "Newer Power Moves (v0.17 → v0.18)".

### Changed
- README badges, intro, "Pick Your Path," "What's New," TOC, and repo map now target Hermes **v0.18.0 (v2026.7.1)**; platform count updated to 25+; guide is now 27 parts.
- Part 23: `/goal` guidance updated for completion contracts; Curator notes updated for the opt-in LLM consolidation pass (Part 22).

### Removed
- **Gemini OAuth as a recommended provider** — the Gemini-CLI OAuth providers were removed in Hermes v0.18. Routing tables and Part 9/21/22 references now point to Gemini API keys or the new Vertex AI provider.
- BlueBubbles-as-the-only-iMessage-path framing (kept as the self-hosted/legacy alternative).
- v0.16-as-current framing and the expanded v0.15 "What's New" section (condensed into Earlier Milestones).

## 2026-06-17 — Hermes v0.16.0 "Surface" Refresh

### Added
Expand Down
58 changes: 38 additions & 20 deletions README.md

Large diffs are not rendered by default.

Binary file added assets/moa-judgment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 41 additions & 11 deletions part15-new-platforms.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Part 15: Messaging Platforms (Teams, LINE, SimpleX, Google Chat, iMessage, WeChat, Android)
# Part 15: Messaging Platforms (iMessage via Photon, WhatsApp Cloud, Teams, LINE, SimpleX, Google Chat, WeChat, Android)

*Hermes' gateway is now a plugin host. v0.9 made Hermes "everywhere"; v0.11/v0.12 added QQBot, Tencent Yuanbao, and Microsoft Teams; v0.13 added Google Chat; v0.14 wires Teams end-to-end and adds LINE + SimpleX Chat.*
*Hermes' gateway is now a plugin host. v0.9 made Hermes "everywhere"; v0.11/v0.12 added QQBot, Tencent Yuanbao, and Microsoft Teams; v0.13 added Google Chat; v0.14 wired Teams end-to-end and added LINE + SimpleX Chat; v0.15 added ntfy; and v0.17 "Reach" added the three biggest asks at once — **iMessage with no Mac required (Photon)**, an **official WhatsApp Business Cloud API** adapter, and the **Raft** agent-to-agent network.*

---

## The 22+ Platform Lineup
## The 25+ Platform Lineup

As of v0.14, the gateway ships built-in adapters plus plugin-shipped platforms:
As of v0.17, the gateway ships built-in adapters plus plugin-shipped platforms:

| Platform | Mode | Notes |
|----------|------|-------|
Expand All @@ -16,8 +16,11 @@ As of v0.14, the gateway ships built-in adapters plus plugin-shipped platforms:
| **Google Chat** | App / webhook | **New in v0.13**, Workspace-native chat surface |
| **LINE** | Messaging API | **New in v0.14**, Japan/Korea/Taiwan mobile-first surface |
| **SimpleX Chat** | Decentralized chat | **New in v0.14**, privacy-first chat with no user IDs |
| WhatsApp | Web API | QR-code login, requires always-on node |
| **iMessage (BlueBubbles)** | Webhook | **New in v0.9** |
| WhatsApp (personal) | Web API | QR-code login, requires always-on node |
| **iMessage (Photon)** | Photon Spectrum relay | **New in v0.17** — no Mac required |
| **iMessage (BlueBubbles)** | Webhook | Self-hosted alternative (needs an always-on Mac) |
| **WhatsApp Business Cloud API** | Official Meta webhook | **New in v0.17** — no QR node needed |
| **Raft** | Agent network | **New in v0.17** — talk to other agents, not humans |
| **Weixin (WeChat personal)** | Long-poll | **New in v0.9** |
| **WeCom (Enterprise WeChat)** | Webhook | **New in v0.9** |
| **QQBot** | WebSocket/Webhook | Added after the original v0.9 platform sweep |
Expand All @@ -41,7 +44,34 @@ All of them respect:
- The shared session database (Part 7)
- Pre-dispatch plugin hooks

This part covers the v0.9 adapters, the newer v0.12–v0.14 surfaces, and **Android / Termux** — running the agent itself on a phone.
This part covers the v0.9 adapters, the newer v0.12–v0.17 surfaces, and **Android / Termux** — running the agent itself on a phone.

> **Telegram got richer in v0.17:** the Telegram adapter upgraded to Bot API 10.1 rich messages — formatted output with media, on by default. If your bot's replies suddenly look nicer, that's why; if a client chokes on them, they can be disabled per-gateway.

## 2026 Update (v0.17): iMessage Without a Mac, Official WhatsApp, and Raft

### iMessage via Photon Spectrum — the new default

The #1 ask since v0.9 — iMessage without dedicating a Mac — shipped in v0.17 as a platform plugin built on **Photon Spectrum's** managed line pool:

```bash
hermes photon login # device-code OAuth — authenticate and you're live
```

Sign in, and Hermes lives in the blue bubbles: DMs, markdown rendering, emoji reactions, outbound media — over a gRPC-native channel (no webhook), with no macOS server, no Full Disk Access, and no always-on hardware. Free to start, nothing to self-host. Access controls (pairing, allowlists, `/fast`, cron delivery) work like every other gateway.

Operationally:

- **Use Photon** if you just want Hermes on iMessage. It's the supported, zero-hardware path and is positioned as the successor to the BlueBubbles bridge.
- **Keep BlueBubbles** (below) if you require fully self-hosted message flow — Photon is a relay service, so your iMessage traffic transits their infrastructure. For the privacy-maximalist posture, the Mac-based bridge is still the answer.

### WhatsApp Business Cloud API — the official path

The old WhatsApp adapter drives WhatsApp Web with a QR login and an always-on node — fine for personal use, fragile for production. v0.17 adds an adapter for **Meta's official Business Cloud API**: webhook-based, no browser session to babysit, and legitimate for business use. If you're building anything customer-facing on WhatsApp, use this one; keep the Web adapter for personal accounts.

### Raft — your agent gets peers

Raft is a channel where the counterparty is **another agent**, not a human. A bundled adapter connects Hermes to [Raft](https://raft.build) as an external agent through a wake-channel bridge: set `RAFT_PROFILE`, run the bridge, and Raft can wake Hermes to handle messages. The design is privacy-by-contract — wake payloads carry only metadata (event IDs, timestamps), never message bodies. Still: treat every inbound Raft message as **untrusted input** — same posture as a public group chat: quarantine profile, no write tools, approvals for anything that touches your machine. [Part 19](./part19-security-playbook.md) applies double here.

## 2026 Update: Teams, LINE, SimpleX, Google Chat, QQBot, and Yuanbao

Expand Down Expand Up @@ -118,13 +148,13 @@ Use QQBot when your community already lives in QQ and you want the same approval
Yuanbao is now a native gateway adapter with text and media delivery. It belongs in the same bucket as Weixin/WeCom: powerful in China/APAC workflows, but operationally different from Western SaaS bots. Verify media size limits and identity mapping before using it for production approvals.


## iMessage via BlueBubbles
## iMessage via BlueBubbles (Self-Hosted Alternative)

### Why This Matters
### Why You'd Still Do This

Apple doesn't have a public iMessage API. The only supported path is [BlueBubbles](https://bluebubbles.app/), a free open-source macOS server that exposes a REST API + webhook feed on top of the native Messages.app database.
> **Most people should use Photon now** (`hermes photon login`, above) — it needs no Mac at all. BlueBubbles remains the right choice when you want message flow that never leaves hardware you own.

If you have a Mac that stays on, you now have an iMessage bot with full media, reactions, typing indicators, and read receipts.
[BlueBubbles](https://bluebubbles.app/) is a free open-source macOS server that exposes a REST API + webhook feed on top of the native Messages.app database. If you have a Mac that stays on, you get a fully self-hosted iMessage bot with full media, reactions, typing indicators, and read receipts.

### Prerequisites

Expand Down
2 changes: 1 addition & 1 deletion part18-coding-agents.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Hermes is excellent at reasoning, memory, conversation, and workflow. It is *not
|-------|-----------|------------|
| **Claude Code** | Best unattended PR work, large refactors, tests, reviews; Week 20+ agent view, `/goal`, and fast Opus 4.7 mode make it the premium lane | Pro/Max OAuth or `ANTHROPIC_API_KEY` |
| **Codex** (OpenAI) | Fast sandboxed feedback loop, bug hunts, small/medium edits; v0.133+ goals default well and runs cleanly behind `hermes proxy` | OAuth via `openai` CLI, `OPENAI_API_KEY`, or `hermes proxy` |
| **Gemini CLI** | 1M context and multimodal repo/document sweeps; v0.43 improves surgical edits, session import/export, and OAuth behavior on headless Linux | OAuth via `gemini auth`; Hermes' own Gemini OAuth covers normal model-provider use |
| **Gemini CLI** | 1M context and multimodal repo/document sweeps; v0.43 improves surgical edits, session import/export, and OAuth behavior on headless Linux | OAuth via `gemini auth`; for normal model-provider use, Hermes uses a `GEMINI_API_KEY` or Vertex AI ([Part 9](./part9-custom-models.md)) |
| **OpenCode** (anomalyco) | Open-source, routes to Kimi K2.6 / GLM / MiMo cheaply | Bring any provider key |
| **Aider** | Surgical git-based edits, smallest token footprint; works well through `hermes proxy` | Bring any provider key or local proxy |

Expand Down
2 changes: 1 addition & 1 deletion part21-remote-sandboxes.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ sandboxes:
pull_on_command: "/sync-home" # Manual sync when you want it
```

Pair with the [Gemini OAuth provider](./part9-custom-models.md#gemini-oauth--free-tier-friendly) for free-tier-friendly long-context reads inside the sandbox.
Pair with a [Gemini API key or Vertex AI](./part9-custom-models.md#google-api-key-or-vertex-ai-gemini-oauth-is-gone) for cheap long-context reads inside the sandbox.

---

Expand Down
44 changes: 42 additions & 2 deletions part22-latest-power-moves.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Part 22: Latest Power Moves — Curator, TUI, Plugins, Context Files

*If you already know Hermes but missed the v0.11/v0.12 wave, read this part first for Curator, TUI, plugins, and context hygiene. For the v0.13/v0.14 durability + foundation layer — Kanban, `/goal`, `/handoff`, Checkpoints v2, no-agent cron, PyPI installs, proxy, and new platforms — go next to [Part 23](./part23-tenacity-stack.md). The newest everyday moves from v0.15 "Velocity" and v0.16 "Surface" — `/undo`, a default-interface choice, the fuzzy model picker, and leaner default skills — are in [section 8](#8-newer-power-moves-v015--v016). For the native GUI and the run-it-local story, see [Part 24](./part24-desktop-app.md) and [Part 25](./part25-nvidia-local.md).*
*If you already know Hermes but missed the v0.11/v0.12 wave, read this part first for Curator, TUI, plugins, and context hygiene. For the v0.13/v0.14 durability + foundation layer — Kanban, `/goal`, `/handoff`, Checkpoints v2, no-agent cron, PyPI installs, proxy, and new platforms — go next to [Part 23](./part23-tenacity-stack.md). The everyday moves from v0.15 "Velocity" and v0.16 "Surface" — `/undo`, a default-interface choice, the fuzzy model picker, and leaner default skills — are in [section 8](#8-newer-power-moves-v015--v016), and the newest v0.17 "Reach" / v0.18 "Judgment" quick hits are in [section 9](#9-newer-power-moves-v017--v018). For the native GUI and the run-it-local story, see [Part 24](./part24-desktop-app.md) and [Part 25](./part25-nvidia-local.md). For the big v0.18 ideas — Mixture-of-Agents, verification, `/learn`, `/journey` — see [Part 26](./part26-moa-verification.md).*

---

Expand All @@ -23,6 +23,8 @@ Use it like this:

Curator should prune skills, not decide project policy. Put durable project rules in context files.

> **v0.17 change:** the Curator's LLM-driven consolidation pass is now **opt-in** — routine curation (archiving duplicates, pruning stale skills) costs zero tokens by default. Enable consolidation explicitly when you want it to actually merge and rewrite skills. Pair Curator with `/journey` ([Part 26](./part26-moa-verification.md#3-learn-and-journey--self-improvement-you-can-see)) to audit the memory side too.

---

## 2. Use the TUI as Your Daily Driver
Expand Down Expand Up @@ -211,11 +213,49 @@ When one board outgrows a single worker, `hermes kanban swarm` turns Kanban into

---

## 9. Newer Power Moves (v0.17 → v0.18)

The Reach and Judgment releases added another round of daily drivers. The headline features (MoA, verification, `/learn`, `/journey`, background fan-out) get their own part — [Part 26](./part26-moa-verification.md) — but these small ones deserve muscle memory:

### `/prompt` — compose long prompts in a real editor

Opens `$EDITOR` so you can write a multi-line, markdown-formatted prompt and have it queued as your next message. The single best QoL command of v0.18 for anyone writing detailed task briefs.

### `/reasoning full` — uncap thinking for a session

When a session hits something genuinely hard, `/reasoning full` removes the thinking budget cap for that session. Cheaper than switching to a bigger model for one gnarly step.

### `/timestamps` and a timestamped `/history`

Toggle inline timestamps on turns and see when things actually happened in `/history` — essential when auditing long autonomous runs.

### In-place compaction (no more broken `@session` links)

Context compression now rewrites the session **under the same session id** by default, instead of rotating to a new one. Long-running sessions keep their identity, so `@session` references, integrations, and desktop links stop silently breaking.

### `image_generate` learned image-to-image

Pass an input image and a transform prompt — restyle screenshots, apply logos, iterate on drafts — across every image provider, from any surface.

### `memory` batch operations

The `memory` tool applies multiple add/update/delete operations atomically in one call. Bulk cleanups (or a `/journey` pruning session) are one round-trip instead of ten.

### Automation Blueprints instead of raw cron

Parameterized automation templates that render as a dashboard form, a slash command, or a plain conversation ("set up my daily briefing for 8am"). Use them for anything you'd previously hand-rolled cron YAML for; keep raw cron for the deterministic no-agent watchdogs in [Part 23](./part23-tenacity-stack.md#5-use-no_agent-cron-for-watchdogs).

### Blank Slate setup

A minimal-agent onboarding mode: start from nothing and opt in tools one at a time. The right default for compliance-sensitive or locked-down machines.

---

## What to Ignore

Some old advice is no longer worth optimizing around:

- Do not install external Gemini CLI just for Gemini auth; Hermes can do OAuth itself.
- Do not build your Gemini setup on the old Gemini-CLI OAuth providers — they were **removed in v0.18**. Use a Gemini API key, or the Vertex AI provider for GCP shops ([Part 9](./part9-custom-models.md)).
- Do not fork the dashboard for a custom tab; write a dashboard plugin.
- Do not keep a giant SOUL.md full of procedures; use skills and Curator.
- Do not use one expensive default model for every auxiliary task.
Expand Down
2 changes: 2 additions & 0 deletions part23-tenacity-stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ Use it for:

Do not use `/goal` for vague aspirations like "improve the project." Give it an observable exit condition: checks pass, PR opened, benchmark table updated, board card complete, etc.

> **v0.18 upgrade — completion contracts.** `/goal` now compiles your objective into an explicit **completion contract**, and the goal only closes when the contract's conditions are *demonstrated* — not when the model claims they are. Background goals run under the same contracts, and `/goal wait <pid>` blocks until a specific background goal completes (useful for chaining). Combined with coding verification, "done" now means proven. Details in [Part 26](./part26-moa-verification.md#2-verification--done-means-proven-not-claimed).

---

## 4. Checkpoints v2 Changes Your Risk Model
Expand Down
Loading
Loading