Repository navigation
v0.3.0
First official release of the Vector platform plugin for Hermes Agent.
Install
git clone https://github.com/BonesGit/hermes-vector-platform ~/.hermes/plugins/vector-platform
hermes plugins enable vector-platform
hermes gateway setup # builds vector-bridge, create/import identity
hermes gateway restartRequires Hermes Agent (current main) and Rust ≥ 1.75. The sidecar depends on crates.io vector_sdk =0.9.0.
Features
Gateway & identity
- Hermes platform plugin (
vector/ toolsethermes-vector) with its own Vector bot npub — not a human impersonation - Rust
vector-bridgesidecar: localhost HTTP + SSE, spawn-timeX-Hermes-Sidecar-Token - Interactive
hermes gateway setup: create or import identity, operator npub as first allowlisted user, pairing, display YAML (tool_progress: off) - Identity create mints a NIP-06 12-word mnemonic and writes
sdk/identity.nsec+sdk/identity.mnemonic(0600); mnemonic import copies both; nsec-only import has no seed file - Runtime never mints — missing
identity.nsecfails until setup/import - Default-deny allowlist (
VECTOR_ALLOWED_USERS) + Hermes pairing codes (VECTOR_PAIRINGdefault on) - Cron
deliver=vectorvia the live sidecar (gateway must be running) - Hardening: runtime record
~/.hermes/runtime/vector-sidecar.json(0600), truncated npub logs, nsec redaction, orphan sidecar reap on connect
DMs
- Bidirectional encrypted DMs with allowlisted peers
- Typing indicators
- Encrypted file attachments (Vector Blossom) inbound and outbound
- File-only (no caption): Vector ack + session breadcrumb (no AI turn); sequential files accumulate until the next text
- File + caption: save then Hermes turn with
media_urls(vision / STT / docs) - Outbound
send_image/send_document/ video / voice / animation via/send-file - Missed DMs while the sidecar was down are not sent to the agent; after Ready, allowlisted chats get ❌ (
VECTOR_MISSED_REACT, default on) - Agent
send_message(action=react|unreact)on DMs; optional processing-lifecycle 👀 → ✅/❌ (VECTOR_REACTIONS, default off)
Communities (Concord)
- Join-first: trusted inviters auto-join; mention / reply / slash-gated turns
- Optional bot-owned private home room (
VECTOR_CREATE_COMMUNITY) - Group people-gate:
VECTOR_ALLOWED_USERS,VECTOR_GROUP_ALLOWED_USERS, orVECTOR_GROUP_ALLOW_ALLchannels - Join DMs to
VECTOR_HOME_CHANNELwith copy-pasteablechannel_id:(once per channel) - Community file attachments: stash on arrival; download when a people-gated member replies and @mentions the bot (
VECTOR_COMMUNITY_DOWNLOAD_ALL=onfor download-on-arrival) - Outbound files to a 64-hex channel via
bot.channel().send_file
Slash commands & profile
- Vector
/picker (kind 10304):/approveand/denywith optional args - Optional public kind-0 profile (
VECTOR_BOT_NAME/ABOUT/AVATAR/BANNER); when slash is on, publishesbot: trueand copies to discovery indexers so the picker works
Requirements / notes
- Sidecar binds
127.0.0.1:8096by default; every route except/liveneeds the token - Do not set
VECTOR_STUBin the gateway - First setup runs
cargo build --release(no prebuilt binary yet) - Community reactions and missed-❌ catch-up remain DM-only
See CHANGELOG.md for the full history.